![如何将标志作为参数传递给 grep](https://linux22.com/image/1364813/%E5%A6%82%E4%BD%95%E5%B0%86%E6%A0%87%E5%BF%97%E4%BD%9C%E4%B8%BA%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92%E7%BB%99%20grep.png)
我试图将 -- 作为参数传递给 grep,因为我感兴趣的文件在其文本中包含 --,就像这样
grep -- file.txt
但我不能,因为 grep 认为 -- 是一个标志。我如何将 -- 作为参数而不是标志传递给 grep?
答案1
grep -e '--' file.txt
来自 grep 的手册页:
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern. This can be used to specify multiple search patterns, or to
protect a pattern beginning with a hyphen (-). (-e is specified by POSIX.)
答案2
至少使用 GNU grep,你可以告诉它不再有标志--
。你可以使用最新版本的 bash 进行如下测试:
<<<"--" grep -- --
输出:
--
答案3
这似乎是最简单的:
grep -- -- file
第一个--
表示选项的结束。它通常用于当您运行的命令具有以-
或开头的选项--
,并且您想要传递以 开头的参数时-
。
第二个--
是您正在搜索的字符串。
如果您想要为 grep 包含更多选项,则这些选项应该放在第一个选项之前--
,如下所示:
要--
完全匹配:
grep -w -- -- file