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

How to grep for a string that includes "->"

本文关键字:字符串 grep 包含 gt      更新时间:2023-10-16

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

grep -F "->foo" *.cpp

格雷普报告

Invalid option -- '>'

然后,如果我尝试

grep -F "->foo" *.cpp

我得到

Invalid option -- ''

我怎样才能让它工作?

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

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

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

$ touch -- -damn 
$ ls -- -*
-damn
$ rm -damn
rm: invalid option -- 'd'
$ rm -- -damn

试试这个:

grep -e "->foo" *.cpp

从手册页:

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