awkでデータ抽出:該当するデータを1週間以内に絞り込む方法
- awkを使用して、処理日から1週間以内に該当するデータを抽出する方法を教えてください。
- 処理日は毎日変わるため、それに合わせてデータを絞り込みたいです。
- 入力データから処理日より1週間以内のデータを出力するawkの記述例を教えてください。
- ベストアンサー
awkで、該当するデータを抽出する方法
データを読み込み、処理日より1週間以内に該当するデータのみ出力したいのですが、awkの組み合わせで可能でしょうか? 処理日は、毎日起動するため変更となります。 記述例を書いていただければ、非常に助かります。 宜しくお願いいたします。 (仮処理日) 2003/6/13 (入力データ) 1 aaaa 100 15-Jun-2003 2 bbbb 200 16-Jun-2003 3 cccc 300 18-jul-2003 4 dddd 400 30-jul-2003 (出力結果) 1 aaaa 100 15-Jun-2003 2 bbbb 200 16-Jun-2003
- isshou-s
- お礼率8% (4/45)
- その他(OS)
- 回答数3
- ありがとう数8
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
awkは知らないので、bashで作ってみました。 ------------------------------------------ #!/bin/bash max_day=$1 file=$2 today=$(date --date='today 0:00' +%s) for line in $(cat $file | tr ' ' ','); do day=$(echo $line | cut -d',' -f4) day=$(date --date=$day +%s) period=$(( ($day-$today)/(24*3600) )) if (( 0 <= $period )) && (( $period < $max_day )); then echo $line fi done ------------------------------------------ 適当な名前で保存し、実行パーミッションを与えてください(例えば、data_print.sh)。コマンドラインから data_print.sh N datafile と打ってください。N日以内のデータを表示します。Nを7とすれば7日以内のデータを表示します(処理日を1日目として数えています)。
その他の回答 (2)
- damejan
- ベストアンサー率30% (58/192)
>Solaris版のGNU dateは存在するのでしょうか? GNUのサイトからソースを取ってきて、コンパイルすればできるんじゃないかな。手元にSolarisがないから確認できないけど。
- damejan
- ベストアンサー率30% (58/192)
#1の補足です。 #1のシェルスクリプトで使っているdateコマンドは、GNUのdateコマンドです。Solarisのdateコマンドはフォーマットオプションに%sが使えなかったような気がしますので、Solaris上では動かないと思います。Linuxで動作は確認してあります。
関連するQ&A
- UNIXで文字列分割
UNIXでマルチバイトの文字列で分割したいです。 例) aaaa bbbb cccc dddd eeee ffff ↓ [bbbb]で分割 [1]aaaa [2] cccc dddd eeee ffff できればawkで処理をしたいと考えています。
- ベストアンサー
- その他(プログラミング・開発)
- 表の抽出方法を教えてください
:::::::::::::::::::::::::::::aaaa::::bbbb::::cccc::::dddd :::0~1000::::::::::::::700:::::800:::::900::::1000 1001~2000:::::::::800:::::900::::1000::::1200 2001~3000::::::1000::::1300::::1600::::1800 上記のような表で1400のbbbbの時に900を抽出する方法を教えてください
- ベストアンサー
- オフィス系ソフト
- SQLの書き方について教えてください。
accessについて。 シートの中に列名name、列名friendnameがあります。 name,friendname aaaa,bbbb bbbb,cccc cccc,aaaa dddd,aaaa eeee,bbbb ffff,eeee ほしいデータは aaaa,bbbb,cccc bbbb,cccc,aaaa cccc,aaaa,bbbb dddd,aaaa,bbbb eeee,bbbb,cccc ffff,eeee,bbbb と友達の友達の名前がほしいのです。 SQLの書き方を教えてください。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
- ACCESSにて2つのテーブルの比較
2つのテーブルA,テーブルBがあります。テーブルBのデータ以外のデータを選ぶにはどうのようにすれば良いのでしょうか? テーブルA data--- aaaa bbbb cccc dddd aaaa cccc テーブルB data--- aaaa bbbb 欲しい結果 テーブルA data--- cccc dddd cccc よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- [Excel]重複データの一方のセルが持つ値を一方の空白セルに反映させたい
A列にある7000件ほどのデータの中から重複データのみを抽出し、 重複データの一方がB列に持つ値を、もう一方のデータのB列の空白セルに反映させたいのですが、方法はありますでしょうか? 「COUNTIF」を使って重複データの抽出はできますが、一方が持つデータをもう一方の空白に反映させることができません。 手作業では期限に間に合わない可能性がみえて焦っております。 恐縮ですがご教授いただけますでしょうか。 (例) [処理前] A列:B列:C列 1111:AAAA:aaaa 2222:BBBB:bbbb 3333:CCCC:cccc 1111: :dddd 2222: :eeee [処理後] A列:B列 1111:AAAA:aaaa 1111:AAAA:dddd 2222:BBBB:bbbb 2222:BBBB:eeee
- ベストアンサー
- その他(業務ソフトウェア)
- JSPとHTMLでの入力データ・図形出力
JSPを初めたばかりでよくわからない点が有りお教えください HTMLの入力フォームから入力したデータで横(または下)の図形表示領域に JSPで入力データを受け取り、図形(線、文字)を出力したいと考えています ここの処理は下記内容で動作しましたが、この組合せを行いたいと考えています 1.JSPに入力データ引き渡し aaaa.html <form action="bbbb.jsp" method="post"> <input type="submit" value=" "> </form> bbbb.jsp:入力データの受け取り 2.JSPでの図形出力 cccc.html <img src="dddd.jsp"> dddd.jsp:図形出力
- ベストアンサー
- Java
- "/"でセル内の文字を縦に分割するマクロについて
マクロ作成の為に、ご協力下さい。 このようなデータが1つのセル内にあります。 aaaa/bbbb/cccc/dddd このセルに対して、"/"があったら下のセルに入力するようにしたいです。 aaaa bbbb cccc dddd どのようにしたら良いか見当がつきません。。。 よろしくお願いいたします。 ※区切り位置の機能を縦に使うようなイメージです。
- ベストアンサー
- オフィス系ソフト
- uniqとループを使用しないで、文字列のフィルターの方法
表題の件にて、質問です。 bashでshを作成しています。いろいろ試しているのですが、 UNIXのコマンドで、uniqコマンドがありますが、それと同じことをsed又は、awk等を使用して、作成することは可能でしょうか? 作成が可能であれば、記述方法を教えてくださいませ。 ※ループ文を使用しないで、出来るだけ完結なコマンド文にしたい。 例: file.txt 以下中身 ---------------------- AAAA BBBB BBBB CCCC CCCC ----------------------- ↓ AAAA BBBB CCCC の3文字のみを出力したい。 ご存知の方いらっしゃいましたら、ご教示ください。
- 締切済み
- その他(プログラミング・開発)
- エクセルで重複しているデータの抽出のしかたを教えてください。
エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。 A列に日付 B列に企業名このデータが300件ほどあります。 Å列 B列 1月 1日 AAAA社 1月 4日 BBBB社 1月 8日 CCCC社 2月 1日 BBBB社 2月20日 DDDD社 3月 2日 AAAA社 と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。 これを簡単に抽出する方法はないでしょうか? 教えてください お願いいたします。
- ベストアンサー
- オフィス系ソフト
- access で 方法を教えてください。
access で 方法を教えてください。 テーブルは セミコロン区切りで、区切られて表示されています (テーブル例) 1 aaaa;bbbb;cccc;dddd;eeee;ffff 2000byte 2 aaaa 300byte 3 bbbb;cccc;ffff 3000byte 4 ffff;dddd 120byte このセミコロン区切りの区切られたデータの 「件数」と「バイト」を表で表示させる方法を教えて欲しいのです。 上記テーブル例を使用しての(抽出例) 抽出条件 ↓ aaaa 2件 2500byte bbbb 2件 5000byte cccc 2件 5000byte dddd 2件 2120byte eeee 1件 2000byte ffff 3件 5120byte 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
回答ありがとうございました。 無事、起動確認できました。 ところで、Solaris版のGNU dateは存在するのでしょうか?