我在 Linux 中有 2 个 txt 文件。
A.txt 内容(每行将包含一个数字):
1
2
3
B.txt 内容(每行将包含一个数字):
1
2
3
10
20
30
grep -f A.txt B.txt
结果如下:
1
2
3
10
20
30
有没有办法以这样的方式进行 grep,我只会得到完全匹配,即不是 10、20、30?
提前致谢
对于完全匹配使用-x
开关
grep -x -f A.txt B.txt
编辑:如果您不想要 grep 的正则表达式功能并且需要将搜索模式视为固定字符串,则使用-F
switch 作为:
grep -xF -f A.txt B.txt
正如 anubhava 指出的那样,grep -x
将匹配整条线。-w
还有另一个用于匹配单词的开关。因此,如果来自的单词与 in 的单词匹配,grep -wf A.txt B.txt
则将显示匹配项A.txt
B.txt
尝试添加-w
标志:
grep -wf A.txt B.txt
这将为您提供准确的结果,低于:1 2 3
谢谢
您可以尝试识别包含不同内容的文件名
# cat a.txt
1
2
3
# cat b.txt
1
2
3
10
20
30
# grep -L a.txt b.txt
b.txt