
このQ&Aは役に立ちましたか?
2人が「このQ&Aが役に立った」と投票しています
回答(2)
find は、基本的に「式」を順番に評価して、真なら続けて次の式を評価していきます。
式のうち、 -exec は後に続くコマンドを実行し、その終了ステータスが「正常」なら真となります。現在のファイルは{}で、コマンドの終りは ; です。共にシェルの特殊文字なので、そのまま記述せず \{\} \; などとします。
grepには -q オプションというのがあって、パターンが見付かったどうかの終了ステータスを返すだけで、一致した行の表示などを行わないません。
これらを組合せると
・findでファイルを探す。
・↑のファイルをgrepでaaaが含まれているか調べる
・↑が含まれていたら、grepでbbbが含まれているか調べる
という流れができます。
find . -type f -exec grep -q aaa \{\} \; -exec grep -q bbb \{\} \; -print
man find
man grep
とすると、他にも使えるオプションや例文が載っているので、読んでみることをお勧めします。
投稿日時 - 2011-06-28 21:19:13