`grep -1` 起什么作用?

`grep -1` 起什么作用?

我正在尝试理解以下 shell 命令,以获取可以更新的软件包列表:

dpkg --get-selections | xargs apt-cache policy {} | grep -1 Installed | sed -r 's/(:|Installed: |Candidate: )//' | uniq -u | tac | sed '/--/I,+1 d' | tac | sed '$d' | sed -n 1~2p

这是什么grep -1意思?我在 grep 的手册页中找不到任何提及-1,甚至在互联网上的任何地方也找不到。

答案1

-1选项是传统的 Unix 样式选项,表示您希望在每个匹配项中grep添加1一行额外的文本语境

如果你做了man grep并寻找标题上下文行控制您会发现以下选项将描述您可以请求额外上下文的不同方式。具体到您的问题,您将看到:

    -C NUM, -NUM, --context=NUM
        Print NUM lines of output context.  Places a line  containing  a
        group separator (--) between contiguous groups of matches.  With
        the -o or --only-matching option,  this  has  no  effect  and  a
        warning is given.

这是-1记录的位置(如-NUMNUM 为 1),因此以下命令的行为都相同:grep -1grep -C 1grep --context=1

答案2

我通过查看结果设法解决了这个问题。它指定了每个匹配项显示多少行(“上下文”)的前一行和后一行。因此,在这个特定情况下,grep 除了显示匹配行本身之外,还会显示每个匹配项的前一行和后一行。

答案3

这没什么好说的grep -1,如果你去终端输入grep --help你找不到grep -1

相关内容