次のコマンドを実行するとき:
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はこれらのファイル名を取得し、grep
new_wordを見つけて一致するファイル名を表示します。