如何抑制在grep中被视为选项的模式

时间:2014-10-05 20:26:58

标签: linux bash

grep中,当我尝试在man页面中查找模式时,如果模式以grep开头,则该模式将被视为-的选项。例如,我发现有人正在使用uname -r,我想知道-r对uname的意义。

 uname --help | grep '-r'

但是我收到了以下错误,

  

用法:grep [OPTION] ... PATTERN [FILE] ...   试试`grep --help'了解更多信息。

似乎-r被视为grep的选项。

3 个答案:

答案 0 :(得分:4)

有两种方法:

  1. 如果您的版本支持,请使用--停止参数处理。

    uname --help | grep -- '-r'
    
  2. 使用-e选项指定模式。因为它期待一个论点,  grep不会将下一个字符串视为新选项,因为它以连字符开头。

    uname --help | grep -e '-r'
    

答案 1 :(得分:4)

如grep:

的手册页所述
  

-e PATTERN, - regexp = PATTERN

     

使用PATTERN作为模式。这可用于指定多个搜索模式,或用于保护以连字符( - )开头的模式。 (-e由POSIX指定。)

uname --help | grep -e -r做了预期的事。

答案 2 :(得分:1)

反斜杠似乎也有帮助:

uname --help | grep "\-r"
uname --help | grep '\-r'