我在单个目录->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)
我怎样才能使这个工作?
试试这个:
grep -e "->foo" *.cpp
Run Code Online (Sandbox Code Playgroud)
从手册页:
-e PATTERN, - regexp = PATTERN
使用PATTERN作为模式.这可用于指定多个搜索模式,或用于保护以连字符( - )开头的模式.(-e由POSIX指定.)[强调添加]
通常(非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)