使用 grep 省略文本文件中给出的值

使用 grep 省略文本文件中给出的值

省略.txt

001
006
008
0016

文件到grepfrom.txt

001
006
007
008
0016
00546
008
0031
00
0021
0016

我想要做

cat filetogrepfrom.txt | grep -a 00 | grep -v {lines from omit.txt}

答案1

grep -a 00 Filetogrepfrom.txt | grep -vf omit.txt

-f 文件,--file=文件

从文件中读取一个或多个换行符分隔的模式。空模式行与每个输入行匹配。换行符不被视为模式的一部分。如果文件为空,则没有任何内容匹配。

这应该做你想做的。

注意:grep可以从文件中读取,因此不需要cat

鉴于您的示例,您也是grep -a 00不必要的,因为它将匹配所有行。此外,您似乎不太可能需要-a文件.txt,但我见过更奇怪的事情。

答案2

假设grep -a 00是无关的,以下应该有效: grep -vf omit.txt Filetogrepfrom.txt

警告:除非您确定Filetogrepfrom.txt永远不会包含“0011”,否则会omit.txt用“001”过滤掉“0011”,否则您确实应该使用类似的内容来绑定“omit.txt”,例如:omit 。TXT: ^001$ ^006$ ^008$ ^0016$

相关内容