在标准输入中删除文件中定义的正则表达式的所有实例

在标准输入中删除文件中定义的正则表达式的所有实例

我正在寻找类似sed 's/pattern//g'和的组合grep -f patternfile.txt

基本上我希望输入流中删除patternfile.txt(每行包含一个正则表达式)中定义的正则表达式模式的所有实例,以便

cat myinitialfile.txt | magiccommands -f patternfile.txt > mycleanfile.txt

答案1

sed 's/^.*/s\/&\/\//' pattern > sed-pattern-file
sed -f sed-pattern-file myinitialfile.txt > mycleanfile.txt

答案2

作为此处已有答案的变体 - 可能更容易将脚本直接从管道中拉出:

sed 's|.*|s/&//g|' <patterns |
sef -f - infile >outfile

这样,您就不需要直接更改模式文件或任何其他文件,而是可以在流中修改它以满足您的需要。

相关内容