奇怪的行为grep -rnw

时间:2018-07-27 12:19:08

标签: grep

我在MacOS中使用grep(BSD grep)2.5.1-FreeBSD,发现以下行为。

我有两个* .tex文件。其中的每一行都包含以下几行

$k$-th bit of
$(i-m)$-th bit of

分别。跑步

grep --color -rnw . -e '\$-th bit of' --include="*.tex" 

我只有第二个文件,即$(i-m)$-th位,而我希望这两行。您能帮我了解一下这种行为吗?

2 个答案:

答案 0 :(得分:1)

请勿使用-r--include或任何其他grep选项来查找文件。当有一个名为find的非常好的工具用于查找时,GNU家伙确实通过在grep中添加这些选项而搞砸了,现在他们已经将grep变成了查找文件和全局匹配文件中的正则表达式并打印结果(G/RE/P

保持简单-使用find,然后使用grep g / re / p 查找文件,:

find . -name '*.tex' -exec grep --color -n '\$-th bit of' {} +

正如其他人指出的那样,您的g/re/p问题是-w参数,因此我已在上面删除了它。

答案 1 :(得分:0)

我有相同版本的grep。

这是由您使用check选项引起的:

-w

字符串 -w, --word-regexp The expression is searched for as a word (as if surrounded by `[[:<:]]' and `[[:>:]]'; see re_format(7)). 的匹配部分在左侧由单词字符(即$k$-th bit of)界定,因此,该匹配项被视为在“单词”中,并且可以因此,它满足“整体搜索”的要求。

尝试不使用k,它将正常工作。