• 締切済み

grepの使用方法について

Tacosanの回答

  • 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 なりを使った方がらく.

関連する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 | $変数 としても同じ結果が得られません。 どこを修正したら良いのでしょうか?よろしくおねがいします。