如何使用grep查找包含“->”的字符串

3
我希望能在单个目录下的所有*.cpp文件中查找字面字符串->foo。如果我尝试使用以下命令:
grep -F "->foo" *.cpp

查找报告

Invalid option -- '>'

那么,如果我尝试
grep -F "-\>foo" *.cpp

我理解

Invalid option -- '\'

如何让这个工作起来?
2个回答

5

试试这个:

grep -e "->foo" *.cpp

来自man手册

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


5

通常情况下(并非特指grep),使用--表示选项的结束:

grep -F -- "->foo" *.cpp

当您意外创建以-开头的文件时,此选项很有用:

$ touch -- -damn 

$ ls -- -*
-damn

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

$ rm -- -damn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接