什么时候使用“grep -- SOMEPATTERN”有用?

什么时候使用“grep -- SOMEPATTERN”有用?

在 Linux/AIX 下,无论何时何地使用--,如以下命令所示:

grep -- SOMEPATTERN

答案1

当“SOMEPATTERN”开始或可能以(破折号)字符开始(例如,如果它是一个"$PATTERN"您无法完全控制的变量) 。-

另外,对于 GNU grep(除非$POSIXLY_CORRECT打开),如果其他参数(文件名)可能以-.

或者,你可以这样做

grep -e -SOMEPATTERN- -- file1 file2 -xxx-

--标志着选项的结束。它在非选项参数可能以 a 开头的任何地方都很有用dash,并且没有坏处,因此使用它是一个好习惯。

答案2

当模式以破折号开头时,否则 grep 会认为它是一个选项。假设您正在文本中查找“-a”:

grep -a file.txt

然后 grep 将尝试使用选项在标准输入中查找模式“file.txt” -a。因此,你需要做

grep -- -a file.txt

相关内容