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)