为什么grep会在我使用-w的情况下返回一场比赛而不是没有它



我运行了以下命令:

grep -f fileA.txt -v fileB.txt

假设在文件B中有这样一个字符串:stringlikethis1234

因为我想看看fileB中有什么,但不是fileA中的,但它没有命中。但是如果我用-w:执行相同的命令

grep -f fileA.txt -v -w fileB.txt

它返回了我一直在寻找的字符串,为什么会这样?-w是匹配整个字符串,但即使没有它,它仍然应该返回命中,对吧?无论是部分还是全部。

谢谢

在fileA中检查要在搜索fileA时排除的单词。该单词旁边可能有空格或制表符。

它在我的系统上运行良好

来自grep帮助:

-w、 --单词regexp强制PATTERN只匹配整个单词

-v、 --反转匹配选择非匹配行

[root@project1-master~]#cat filea

这个

[root@project1-master~]#cat文件,此旁边有空格

这个

[root@project1-master~]#cat fileb

这个

这些

这个

这是

  1. "grep-f文件a-v文件b";相当于";grep-v this fileb",因此它返回&这些

[root@project1-master~]#grep-f文件a-v文件b

这些

2.";grep-f文件a-v-w文件b";相当于grep-v-w这个fileb,所以它将显示"thithis",并且在"thithi"中有这个词的边界

[root@project1-master~]#grep-f filea-v-w fileb

这些

这个

  1. grep-f文件awithspacenexttothis-v文件b等价于"grep-v"this"fileb">

[root@project1-master~]#grep-f文件a与此-v文件b 相邻

这些

这个

4.grep-f文件a与此-v-w文件b之间的空格等价于";grep-v-w"this"fileb",它将显示";蓟"这就是";因为在它们中对于";这个";

[root@project1-master~]#grep-f文件a与此-v-w文件b 相邻的空间

这些

这个

这是

如果你提供filea&fileb和grep输出。

最新更新