grep 命令手册页中带连字符的选项

grep 命令手册页中带连字符的选项

假设我想在不滚动的情况下了解命令-i中 switch的用法grep。我需要该命令的规范,或者至少先看到屏幕显示该命令。那么怎么做呢?正如您所说,一般来说,不仅仅是grep -i

答案1

在终端上输入以下命令:

man grep

然后输入斜线字符/,并输入搜索内容,例如-i,后跟Enter。这会将光标定位在搜索字符串的第一个匹配项处。按 可n将光标移动到下一个匹配项。按Shift+n可将光标移动到上一个匹配项。

答案2

尝试这个简单的sed命令,

$ man grep | sed -n '/-i, --ignore-case/,+2p'
    -i, --ignore-case
              Ignore  case  distinctions  in  both  the  PATTERN and the input
              files.  (-i is specified by POSIX.)

解释:

sed -n '/-i, --ignore-case/,+2p'

        |<-Search pattern->|

它将打印包含搜索模式的行以及位于搜索模式行正下方的两行。

或者

您可以简单地在搜索模式中给出标志,如下所示。

avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *i, -/,+3p'
       -i, --ignore-case
              Ignore  case  distinctions  in  both  the  PATTERN and the input
              files.  (-i is specified by POSIX.)

avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *V, -/,+3p'
       -V, --version
              Print  the version number of grep to the standard output stream.
              This version number should be included in all bug  reports  (see
              below).
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *F, -/,+3p'
       -F, --fixed-strings
              Interpret PATTERN as a  list  of  fixed  strings,  separated  by
              newlines,  any  of  which is to be matched.  (-F is specified by
              POSIX.)
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *G, -/,+3p'
       -G, --basic-regexp
              Interpret PATTERN  as  a  basic  regular  expression  (BRE,  see
              below).  This is the default.

您可以将此脚本添加到您的.bashrc$HOME/.bashrc)以便快速访问:

mangrep(){
    USAGE="mangrep <application> <switch>"
    if [[ "$#" -ne "2" ]]
      then
          echo "Usage: $USAGE"
      else
          man "$1" | sed -n "/ *"$2", -/,+3p"
    fi
}

答案3

虽然最简单的方法是按照/@girardengo 的建议进行搜索,但您也可以使用我认为更简单的grep方法sed

$ man grep | grep -A 1 '^ *-i'
   -i, --ignore-case
          Ignore  case  distinctions  in  both  the  PATTERN and the input
          files.  (-i is specified by POSIX.)

意思-A N是“打印匹配行之后的 N 行。这只是一个获取接下来几行的技巧,类似于阿维纳什 sed方法。

答案4

我知道的最有效的方法是搜索手册页-i(这个网站似乎无法呈现我的代码。我的意思是<space><space><space>-i)。也就是 3 个空格(您可能需要更多/更少的空格)后跟您要查找的标志。根据我的经验,它几乎总是有效的,如果它不起作用,您可以更改为它的某个变体。

这样做之所以有效,是因为标志的实际文档通常是缩进的。这样可以避免在其他部分找到对标志的其他提及,因为它们前面通常只有一个空格。

相关内容