読者です 読者をやめる 読者になる 読者になる

カメニッキ

カメとインコと釣りの人です

grepで複数条件を利用する + findしたファイルをgrepする

old

1. grep複数条件を使用する方法
grepのオプション】

Linuxコマンド集 - 【 grep 】 文字列を検索する:ITpro

  • -i・・・大文字と小文字を区別しない
  • -l・・・パターンに一致した行を含むファイル名だけを出力する
  • -n・・・パターンに一致した行のファイル内での行番号を表示する
  • -v・・・パターンに一致しない行を表示する
  • --color・・・一致文字列に色を付ける事ができる
  • -o(--only-matching)・・・一致した文字列だけを出力する
  • -r・・・特定ディレクトリ以下を再帰的に検索する

①検索の場合

  • AND条件
grep "keyword1" sample.txt | grep "keyword2"
  • OR条件
grep "keyword1\|keyword2" sample.txt

※「\|」でキーワードを区切ることで「いずれかに一致」でgrepできます。

②除外の場合

  • AND条件
grep -v "keyword1\|keyword2" sample.txt

※「-v」オプションを使用し「除外」することができます。

2. findしたファイルをgrepする方法

find "target-dir" \( -name \*.php -o -name \*.html -o -name \*.inc \) -print0 | xargs -0 grep "keyword" /dev/null

※「\(」の後と「\)」の前には必ず半角スペースが入ります。
※ファイルに書き出したい場合「/dev/null」を「> grep.txt」のようにすれば良いです。