出力ファイルから単語を検索する

出力ファイルから単語を検索する

次のコマンドを実行するとき:

find loanwolf/ -name '*.html' -exec grep --color -rn 'loanwolf_tags' {} +

出力にいくつかのファイルが提供されました。出力されたファイルから新しい単語を検索したいが、grepそのような作業には使えないようです。どうすればそのようなことができますか?

答え1

2つのgrep

-exec真または偽を提供するので

find .. -exec grep foo {} \; -exec grep bar {} \;

bar見つからないと、ファイルは検索されません。foo

\;オールドスクール(脱出しなければならない;+であり、ニュースクールです。

答え2

結果を得るには、次のようにします。

find loanwolf/. -type f -name '*.html' -exec grep -lHZ loanwolf_tags {} + |
xargs -r -0 grep -lH new_word

ここでやるべきことは、html拡張子を持つ一般的なファイルを見ることです。私たちはそれらのファイルをgrepに入力し、その中でLoanwolf_tags文字列を探しています。このオプションは、対応する文字列が見つかったファイル名を表示し、-lファイル名にnullを追加して渡されます。xargs\0

これらのファイル名を取得し、xargsヌル文字に分割してすべての形式のファイル名を回復します。その後、xargsはこれらのファイル名を取得し、grepnew_wordを見つけて一致するファイル名を表示します。

関連情報