与 -w 选项相比,为什么使用 \bSTRING\b 时使用 grep 进行递归搜索会打印更少的行?

与 -w 选项相比,为什么使用 \bSTRING\b 时使用 grep 进行递归搜索会打印更少的行?

读取当前工作目录下的所有文件有两种方法:

  1. grep -rw pip | wc -l
  2. grep -r "\bpip\b" | wc -l

假设 1 和 2 都在工作目录中搜索整个单词“pip”,为什么 1 中wc打印与模式匹配的行数为 117,而 2 则wc打印 74 作为行数?

也许我不明白 grep 的递归搜索是如何工作的。当递归 grep 时,是否grep只打印包含至少一行与模式匹配的文件?例如,在上面的第一个命令中,当前工作目录下的 117 个文件包含与整个单词“pip”匹配的行,类似地,在第二个命令中,当前工作目录下的 74 个文件包含与整个单词“pip”匹配的行。它是否正确?

相关内容