在 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