あるファイルから別のファイルにパターンを検索し、各パターンの結果を新しいファイルに保存する方法

あるファイルから別のファイルにパターンを検索し、各パターンの結果を新しいファイルに保存する方法

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

これにより、空のファイル(一致しないパターン)も削除されます。

おすすめ記事