以下内容会返回一系列结果,包括那些包含" - > emit"
的结果grep -rnw '/var/www/react' -e ">emit"
但是以下内容没有返回结果
grep -rnw '/var/www/react' -e "->emit"
为什么?
答案 0 :(得分:1)
您需要删除-w
选项。它说要将表达作为一个整体来对待。 word
必须以非字字符为界,即只能用[a-zA-Z0-9_]
以外的字符包围。
emit
会匹配emit
,_emit
或->emit
,但不会匹配remit
。
我猜测您的->emit
正在尝试匹配a->emit
之类的内容,但因为a
是word
字符而无法匹配。
答案 1 :(得分:1)
它是一个完整的单词匹配,请找到 grep Documentation
假设我想搜索整个单词,而不是单词的一部分?
grep -w'hello'*
仅搜索整个单词的'hello'实例;它确实 不匹配'奥赛罗'。要获得更多控制权,请使用'\<'和'\>'来匹配 单词的开头和结尾。例如:
grep'hello \>' *
仅搜索以“hello”结尾的单词,因此它匹配单词 “奥赛罗”。