• 締切済み

grepの使用方法について

下記のようなデータから2009/08/22以降のデータをgrepしたいというようなことは可能なのでしょうか? 2009/08/21 20:00 2009/08/21 21:00 2009/08/21 22:00 2009/08/21 23:00 2009/08/22 00:00 ←これ以降の日付のデータを取得したい 2009/08/22 01:00 2009/08/22 02:00

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

「可能だけどやりたくない」に 1票. 理論上は ^(1[0-9][0-9][0-9][0-9][0-9]* |3[0-9][0-9][0-9] |2[1-9][0-9][0-9] |20[1-9][0-9] |2009/1[012]|2009/09|2009/08/3[01]|2009/08/2[2-9]) にマッチさせればいいのかもしれんけど, これはさすがにバカだと思う. 順番になっているなら sed でいいし, そうでなくても awk なり Perl なりを使った方がらく.

全文を見る
すると、全ての回答が全文表示されます。
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

可能か?という質問については、多分可能です。 が、だからといってしちめんどくさいぱたーんを作ってやるべきではありません。 別の質問で、awkでやろうとしたけどうまくいかなかったというのが ありましたけど、具体的にどのようなスクリプトを書いてうまくいかなかったのでしょうか? それと確かsedで、指定日以降入力の末尾までという回答をされた方も いらしてましたが、そのような方法ではなにか不満な点があるのですか? ついで。 >grep "2009\/08\/22" "ファイル名" > "出力ファイル名" スラッシュは正規表現ではメタ文字でも何でもありませんから、 バックスラッシュを前置するのは無意味(場合によっては害)です。 awkでは正規表現を囲むのはスラッシュ固定なのでどうしようもありませんが sed(やPerlなど)では別のキャラクターに変更可能です。

全文を見る
すると、全ての回答が全文表示されます。
noname#96023
noname#96023
回答No.2

2009/08/23日以降の日付があるのなら grepでは無理です awkとか windowsならVBAでもいいし

全文を見る
すると、全ての回答が全文表示されます。
  • bakeratta
  • ベストアンサー率24% (317/1288)
回答No.1

まず、これ(↓)ってテキストデータの中身ですか?  2009/08/21 20:00  2009/08/21 21:00  2009/08/21 22:00  2009/08/21 23:00  2009/08/22 00:00   2009/08/22 01:00  2009/08/22 02:00 grep "2009\/08\/22" "ファイル名" > "出力ファイル名" ってやれば、2009/08/22って文字列のある行を抜き出すことは出来ると思いますが・・・。  (もしかしたら、検索文字とファイル名が前後逆かも・・・(汗)) これだと、2009/08/23以降は抽出できないですね。(^-^;; なんなら、viだとかreとかのエディタで編集した方が早いかも・・・。 ファイル数が多いなら、sedなどでbatを組んではどうでしょうか? (しばらく使ってないので、実際のやり方を教えることは無理ですけど(苦笑)) <補足> \は、Linux(UNIX)上ではバックスラッシュです。 単純に"/"だけだとLinux(UNIX)上では予約文字(?)なので、バックスラッシュでキャンセルしているって意味ですね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • grepの使用方法ミス?

    いつもお世話になっております。 下記のコードで配列の中で今日の日付と一致するものを表示したかったのですが、 全データが表示されてしまいます。 (最終的には今日と一致する配列とその次の配列を表示させたい) grepのところがうまくいってないようなのですが、コマンドプロンプトでは通ってしまい、何がミスなのかよくわかりません。 ご存知の方、ご指摘と正しい使用方法をお教えください。 よろしくお願いいたします。 ///////////////////////////////////// <中略> #***** サブルーチンの組み込み ***** require 'sub_today.pl'; #今日の日付を取り出します。 #********** ファイルを読み込む $in = "../days.txt"; #1ヶ月分の日付がサブルーチンの日付と同じ形式で1行ずつ入っています。 open( IN, "$in" ); @record = <IN>; @result = grep(&gettoday(), @record); close( IN ); print @result; exit;

    • ベストアンサー
    • CGI
  • grepの方法について

    下記のようにgrep結果を取り出したいのですが大量にあります。 検索結果を最新の1つのみ取り出したいのですが、何か良い方法はありますでしょうか? # cat abc.log |grep testword 大量です # cat abc.log |grep -c testword 9100

  • シェルスクリプト grep

    下記のようなファイルから年月をkeyとして2009/08/05以降のものだけを取得してくる方法がわかりません。 grepでは日時指定をしようにも方法がわからず、awkを使ってもいまいちうまくいきません。 何か方法ありますでしょうか 2009/08/04 08:00:07 開始 2009/08/04 08:00:07 終了 2009/08/05 08:00:07 開始 2009/08/05 08:00:07 終了 2009/08/05 08:00:07 開始 2009/08/05 08:00:07 終了 2009/08/06 08:00:07 開始 2009/08/06 08:00:07 終了

  • grepについて

    grepについて教えてください。 ログファイルから 09/16~09/21の日付を抜くには どのようにしたらよろしいのでしょうか? egrep "(09/16|09/17|09/18|09/19|09/20|09/21)" ログファイル名 しか思いつきません。 よろしくお願いします。

  • grepでの日本語検索

    現在、 grep '2004-10-1' test.log | grep -c '日本語' というように日付と単語の両方がある行数を取り出す処理を行っています。 grepでは日本語は対応していないとありましたが、このように日本語でも行数を取得できるようなコマンドがありましたら、ご教授ください。

  • grepの方法について

    私は現在、500ファイル近いjspファイルもしくはhtmlファイルから hrefのリンクだけを抽出する作業を行っています。 下記コマンドでgrepをかけた場合、 後ろにつながる文字列まで抽出されてしまいます。 grep -i -e "href=" ソースファイルとしては、 <a href="ファイルパス.html" target><img src=""> というように、hrefの後ろにつながって 他のタグが記述されてしまっていますが、 hrefの"ファイルパス.html"のみを抽出したいのです。 どうすればよいでしょうか。 お手数かと思いますが、 宜しくお願いいたします。

  • 秀丸のgrep検索

    お世話になっております。 「秀丸」のことです。 秀丸のなかにテキストデータが今入っています。 1 日付 時間 データ 2 日付 時間 データ 3 日付 時間 データ というかんじにはいっています。 同じファイルがたくさんあって、ひとつのフォルダに なっています。 そのデータにgrep検索をかけたいのです。 以前検索をかけたときは、 普通に 検索元ファイル名 日付 時間 データ 検索元ファイル名 日付 時間 データ 検索元ファイル名 日付 時間 データ 検索元ファイル名 日付 時間 データ というふうに結果が出たのですが、 ルートディレクトリ?からファイル名が出てきてしまうのです。 具体的には C:¥ABC¥DCV¥UUU\検索元ファイル名 日付 時間 データ というように余計なデータまでくっついてくるのです どうしたらいいでしょうか? なにがわるいのでしょう? ちなみに、 そのデータはネットワークにありましたが、 自分のPC(ローカルに落としてきても) おなじでした どうしたらいいでしょうか?

  • Solarisでのgrepについて

    Solarisのgrepには、前後の行を表示するオプションがないと 思います。 GNUのgrepを使用できない(構成を変更できない)環境ですが、 Linuxのgrepでいう[-A]や[-B]オプションを使用したシェルが 必要になり困っています。 できれば、下記のgrepのように|(パイプ)で挟んで使用している 状態にしたいのですが、コマンドやオプションを教えていただけ ませんか? ***|grep -B1 ***|*** シェルを早急に作成する必要がありますが、知識が乏しく 大変困っています。 よろしくお願いいたします。

  • grepの書き方がわかりません。

    Perlの初心者なんですが、以下のようなテーマをもらってプログラムを作っています。  第一引数にディレクトリのパス、第二引数に検索し たいファイル名を指定して第一引数の  パス以下にある全てのディレクトリを検索してファイルがあればそのパスを表示させなさい。 一応できたのですがプログラムの記述の一部がよくわかりません。以下のプログラムは一部です。 local ($dir, $file) = @_; opendir(DIR,$dir) or die @data = readdir(DIR);#ディレクトリの内容を読む closedir(DIR);#ディレクトリを閉じる local @fname = grep {-f "$dir/$_"} @data; local @dname = grep {-d "$dir/$_"} @data; $dir,$fileには第一、第二引数の文字列をいれているのですがそのディレクトリになかにファイル、ディレクトリがないか検索するためgrepを使っています。それで"$dir/$_"の部分の意味がよくわかりません。 この部分は他のサイトであったものを流用しただけなのですがよくわからないまま使ってたまたま動いたから使用しててこのままでは理解していないままなので どうか教えてほしいです。 あともう一点ありましてgrepのところで最初自分で書いた時  local @fname = grep (-f,@data); というように書きました。ファイルが第一引数にあるときは問題なく動作するのですがその下にあるディレクトリにあるとなぜかプログラムが終わりません。 デバッグとして@dataの中身を表示したらそのディレクトリの検索をしてはいるんですが、その中に目当てのファイルがあるはずなのに@dataの中身がからっぽで ファイルがないことになっています。この違いがどうしてもわかりません。  以上の二点がわからないんですがどうかお手数ですがどなたか教えてください。  

    • ベストアンサー
    • Perl
  • grepで変数が使えない

    HP-UX cshで、grep -v file01 | grep -v file02と 直打ちすると「file01とfile02以外のファイル一覧」 が取得できるのですが 本文にgrep -v file01 | grep -v file02と書いた file03を作成し set 変数 = `cat file3`として、ll | $変数 としても同じ結果が得られません。 どこを修正したら良いのでしょうか?よろしくおねがいします。

元カノに会いたいは現実逃避?
このQ&Aのポイント
  • 既婚者元カレから7年ぶりに連絡がきました。嫁が不倫して離婚の話し合い中で、子供を連れて実家に帰り別居中です。
  • 東京への観光旅行に誘われ、一緒に観光してご飯を食べるだけとのことですが、会うことにはリスクがあると考え、断りました。
  • 元カレは破綻していると言い、会いたいという気持ちを示していますが、家族の問題を解決することが優先だと提案しました。会わなくてよかったと思っています。
回答を見る