为什么 grep 只允许我搜索整个单词

sim*_*ack 1 grep

我正在尝试为与“强制”匹配的任何代码 grep 一些代码,以下工作并显示结果:

grep --include=\*.rb -rnw . -e enforce
Run Code Online (Sandbox Code Playgroud)

但以下没有给出任何结果:

grep --include=\*.rb -rnw . -e enforc
Run Code Online (Sandbox Code Playgroud)

我如何 grep 包含“强制”的任何内容?

pLu*_*umo 25

w从选项中删除:

grep --include=\*.rb -rn . -e enforc
Run Code Online (Sandbox Code Playgroud)

-w, --word-regexp
仅选择包含构成整个单词的匹配项的那些行。测试是匹配的子字符串必须位于行首或前面是非单词组成字符。同样,它必须位于行尾或后跟非单词组成字符。单词组成字符是字母、数字和下划线。

  • @simonzack 任何时候你看到 `-blahblah` 就意味着它正在做_某事_(此外,还有一些不是默认的)所以,是的,这是要检查的第一件事。 (4认同)