gas*_*ter 8 command-line syntax
在 Linux/AIX 下,什么时候使用 有用--,如以下命令:
grep -- SOMEPATTERN
Run Code Online (Sandbox Code Playgroud)
Sté*_*las 18
当“SOMEPATTERN”以(破折号)字符开始或可能开始时(例如,如果它是一个"$PATTERN"您无法完全控制的变量-)。
同样对于 GNU grep(除非$POSIXLY_CORRECT打开),如果其他参数(文件名)可能以-.
或者,你可以做
grep -e -SOMEPATTERN- -- file1 file2 -xxx-
Run Code Online (Sandbox Code Playgroud)
--标志着选项的结束。它在非选项参数可能以 a 开头的任何地方都很有用dash,而且它没有害处,因此使用它是一个好习惯。
当模式以破折号开头时,否则 grep 会认为这是一个选项。假设您正在文本中查找“-a”:
grep -a file.txt
Run Code Online (Sandbox Code Playgroud)
然后,grep 将尝试使用选项在标准输入中查找模式“file.txt” -a。因此,你需要做
grep -- -a file.txt
Run Code Online (Sandbox Code Playgroud)