我在Linux中有2个txt文件。A.txt内容(每行将包含一个数字):
1 2 3
B.txt内容(每行将包含一个数字):
1 2 3 10 20 30
grep -f A.txt B.txt结果如下:
grep -f A.txt B.txt
有没有一种方法可以让grep只得到完全匹配的结果,而不是10、20、30?先谢谢你了
c8ib6hqw1#
要精确匹配,请使用-x开关
-x
grep -x -f A.txt B.txt
**编辑:**如果你不需要grep的正则表达式功能,并且需要将搜索模式视为固定字符串,那么使用-F switch:
-F
grep -xF -f A.txt B.txt
-x, --line-regexp Only input lines selected against an entire fixed string or regular expression are considered to be matching lines.
xvw2m8pv2#
正如anubhava指出的,grep -x将匹配整行。还有另一个开关-w用于匹配单词。因此,如果A.txt中的单词与B.txt中的单词匹配,grep -wf A.txt B.txt将显示匹配。
grep -x
-w
A.txt
B.txt
grep -wf A.txt B.txt
o7jaxewo3#
尝试添加-w标志:grep -wf A.txt B.txt这将给予你确切的结果,它是下:一二三谢谢
-w, --word-regexp The expression is searched for as a word (as if surrounded by ‘[[:<:]]’ and ‘[[:>:]]’; see re_format(7)). This option has no effect if -x is also specified.
tag5nh1u4#
您可以尝试识别包含不同内容的文件名
# cat a.txt 1 2 3 # cat b.txt 1 2 3 10 20 30 # grep -L a.txt b.txt b.txt
4条答案
按热度按时间c8ib6hqw1#
要精确匹配,请使用
-x
开关**编辑:**如果你不需要grep的正则表达式功能,并且需要将搜索模式视为固定字符串,那么使用
-F
switch:xvw2m8pv2#
正如anubhava指出的,
grep -x
将匹配整行。还有另一个开关-w
用于匹配单词。因此,如果A.txt
中的单词与B.txt
中的单词匹配,grep -wf A.txt B.txt
将显示匹配。o7jaxewo3#
尝试添加
-w
标志:grep -wf A.txt B.txt
这将给予你确切的结果,它是下:一二三
谢谢
tag5nh1u4#
您可以尝试识别包含不同内容的文件名