如何将一个文件的模式搜索到另一个文件并将每个模式的结果保存在新文件中

如何将一个文件的模式搜索到另一个文件并将每个模式的结果保存在新文件中

我想在 file2 中搜索 file1 的模式,并将每个模式的结果保存在新文件中。我知道如何使用文件 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

这还会删除任何空文件(不匹配的模式)。

相关内容