如何grep包含" - >"的字符串

Ami*_*ram 3 c++ grep

我在单个目录->foo中的所有*.cpp文件中查找文字字符串.如果我试试

grep -F "->foo" *.cpp
Run Code Online (Sandbox Code Playgroud)

grep报道

Invalid option -- '>'
Run Code Online (Sandbox Code Playgroud)

然后,如果我尝试

grep -F "-\>foo" *.cpp
Run Code Online (Sandbox Code Playgroud)

我明白了

Invalid option -- '\'
Run Code Online (Sandbox Code Playgroud)

我怎样才能使这个工作?

Rob*_*obᵩ 5

试试这个:

grep -e "->foo" *.cpp
Run Code Online (Sandbox Code Playgroud)

手册页:

-e PATTERN, - regexp = PATTERN
使用PATTERN作为模式.这可用于指定多个搜索模式,或用于保护以连字符( - )开头的模式.(-e由POSIX指定.)[强调添加]


Chr*_*our 5

通常(非grep特定)使用--表示选项的结束:

grep -F -- "->foo" *.cpp
Run Code Online (Sandbox Code Playgroud)

当您意外创建以-下列开头的文件时很有帮助:

$ touch -- -damn 

$ ls -- -*
-damn

$ rm -damn
rm: invalid option -- 'd'

$ rm -- -damn
Run Code Online (Sandbox Code Playgroud)