file1からfile2のパターンを検索し、各パターンの結果を新しいファイルに保存したいと思います。ファイル2で検索したいすべてのパターンに対してこれを行い、次の方法で結果を保存する方法を知っています。
grep -wFf file1 file 2 > outputfile
ところで、問題は、各モードごとに別々の出力ファイルを作成したいということです。
どうすればいいですか?
答え1
ユーティリティgrep
はデフォルトでこれを実行できないため、この場合はループを使用する必要があります。
次のことがトリックを実行します。
i=0
while read -r pattern; do
outfile="data-$(( i++ )).out"
fgrep -w "$pattern" data.in >$outfile
if [ ! -s $outfile ]; then
rm $outfile
fi
done <patterns.in
これにより、空のファイル(一致しないパターン)も削除されます。