findとxargまたはexecを組み合わせて、結果から特定のパターンを検索する例を見つけました。リンクを参照してください。ここただし、
find コマンドの結果を grep の検索パターンとして使用したいと思います。以下のコマンドのようなものですが、どのように構築すればよいかわかりません。
find . -name "*.cgi" -printf '%f\n' | cut -d. -f1 | xarg grep 'find_result' *.html
答え1
GNU を想定しgrep
、ファイル名に改行が埋め込まれていないと仮定します。
find . -name '*.cgi' -printf '%f\n' | cut -d. -f1 | sort -u | fgrep -f - *.html
答え2
ここでは必要ありません。stdinからパターン リストを読み取るxargs
だけで済みます。grep
GNU find を使用すると:
find . -name '*cgi' -printf '%f\n' | grep -f - *html
さもないと:
find . -name '*cgi' | cut -f2- -d/ | grep -f - *html