• ベストアンサー

UNIXで複数のログファイルからエラー文字を探す

初歩的な質問で申し訳ないのですが、UNIXで複数のログファイルから エラー文字を探して、確認したい次第です。 探したい文字列:E0001 ログファイル:20110823.log 20110824.log 20110825.log等日付名のログファイルがたくさんあります。 grepコマンドを使うといいと思うのですが、ご教授いただけますでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

「grepコマンドを使うといい」と思ったら、まずは man grep で使い方を調べましょう。 もし、英語でわかならない、というときでも、ネットで検索すれば日本語訳も解説も見つかります。 また、複数ファイルがある場合は、シェルの機能である「パス名展開」を使うと、一定の規則にしたがったものをまとめて書くこともできます。これも man お使いのシェル(sh,csh, bash等) で調べたり、「パス名 展開」にお使いのシェルをキーワードで検索すればわかります。 > #1 > find . -exec grep E0001 \; > find . -name '2011*.log' -exec grep E0001 \; これだと、findが見付けたパスがgrepに渡りませんよ。単に grep E0001 としたのと同じになってしまい、標準入力からの入力待ちになってしまいます。

sepro
質問者

お礼

ご回答有り難うございます。 大変参考になりました。

その他の回答 (1)

回答No.1

grep E0001 *.log とかでしょうか? 2011から始まるのだけ見たいなら、 grep E0001 2011*.log ですが。 ファイル数があまりに多い場合は、 find . -exec grep E0001 \; というやり方もあります。 2011から始まるものだけをやる場合は find . -name '2011*.log' -exec grep E0001 \; ですね。 あと、こういう書き方も出来ます。 find . | egrep '^2011.*\.log' | xargs grep E0001 grepにはegrepとfgrepがあって、それぞれ正規表現でマッチするのと完全一致するのとになっています。

sepro
質問者

お礼

ご回答有り難うございます。 参考に記載いただいたコマンドが、例として大変分かりやすかったです。

関連するQ&A