我在单个目录中的所有->foo
文件中查找文字字符串*.cpp
。如果我试试
grep -F "->foo" *.cpp
grep报道
Invalid option -- '>'
然后,如果我尝试
grep -F "-\>foo" *.cpp
我得到了
Invalid option -- '\'
我怎样才能使这个工作?
答案 0 :(得分:5)
试试这个:
grep -e "->foo" *.cpp
来自man page:
-e PATTERN, - regexp = PATTERN
使用PATTERN作为模式。这可用于指定多个搜索模式,或保护以连字符( - )开头的模式。 (-e由POSIX指定。)[强调添加]
答案 1 :(得分:5)
通常(不是grep
特定的)使用--
表示选项的结束:
grep -F -- "->foo" *.cpp
当您意外创建以-
开头的文件时有用:
$ touch -- -damn
$ ls -- -*
-damn
$ rm -damn
rm: invalid option -- 'd'
$ rm -- -damn