假设我有文件A.txt看起来有点像这样:
43287134, string1, string2
1233, foo, bar
973, barfoo, foobar
7464, asdf, ghjk
我有文件B.txt使用这些正则表达式,用一行分隔:
^973,
^1233,
我想要申请文件B.txt正则表达式到文件A.txt,并删除匹配的行,以便最终结果为:
43287134, string1, string2
7464, asdf, ghjk
有没有可用的工具来执行此操作?谢谢!
答案1
这正是grep
设计的目的:
grep -v -f FileB.txt FileA.txt
-f <filename>
从文件中读取正则表达式(而不是命令行)-v
反转匹配(打印不匹配的行)
输出:
43287134, string1, string2
7464, asdf, ghjk
答案2
这也可以通过以下方式完成sed
:
while read -r REG_EX; do sed -i "/$REG_EX/d" FileA.txt; done<FileB.txt