如何将标志作为参数传递给 grep

如何将标志作为参数传递给 grep

我试图将 -- 作为参数传递给 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

相关内容