Unix 将';曼格雷普';旗帜

Unix 将';曼格雷普';旗帜,unix,grep,flags,manpage,Unix,Grep,Flags,Manpage,我确实经常使用grep,但我很想改进一下 关于这个问题。我想缩小man条目的范围,找到grep-v“pattern”文件名中-v代表什么的解释,主要是: -v, --invert-match Selected lines are those not matching any of the specified patterns. 因此,为了找到包含-v的行之后的下五行,我尝试: mangrep | grep-a5-v 及 man grep | grep-A 5'-v' 但他们

我确实经常使用grep,但我很想改进一下

关于这个问题。我想缩小
man
条目的范围,找到
grep-v“pattern”文件名中
-v
代表什么的解释,主要是:

 -v, --invert-match
         Selected lines are those not matching any of the specified patterns.
因此,为了找到包含
-v
的行之后的下五行,我尝试:

mangrep | grep-a5-v

man grep | grep-A 5'-v'

但他们回来了:

usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
    [-e pattern] [-f file] [--binary-files=value] [--color=when]
    [--context[=num]] [--directories=action] [--label] [--line-buffered]
    [--null] [pattern] [file ...]
这让我感到困惑,因为:

man-grep | grep-A 5'选定'

man grep | grep-选择了5个

干活儿


我的方法有什么问题?有没有更简单的方法来实现我的需求?

一种方法是直接为命令解析
Info
文档。如果您运行
info grep
(或其他命令),您通常会发现更详细、结构更好的文档,这将使您能够锁定所需的部分

这里有一个函数,它将打印选项/变量/etc的相关
Info
部分:

info_search() {
   info --subnodes "$1" -o -  2>&- \
   | awk -v RS='' "/(^|\n)(‘|'|\`)$2((,|\[| ).*)?(’|')\n/"
}
这应该适用于Linux/macOS/BSD。输出如下所示:

$ info_search grep -v ‘-v’ ‘--invert-match’ Invert the sense of matching, to select non-matching lines. (‘-v’ is specified by POSIX.) $info\u搜索grep-v “-v” “--反向匹配” 反转匹配的意义,以选择不匹配的线。('-v' 由POSIX指定。) $info\u搜索窗口 'RS==“\n”' 记录由换行符('\n')分隔。实际上, 数据文件中的每一行都是单独的记录,包括空白记录 ... $info\u搜索bash-i `-我 强制shell以交互方式运行。交互式shell是 ...
/
再加上你要找的词来浏览一下怎么样?我同意上面的搜索形式,但是,你的问题是你的搜索项目以连字符开头,因此grep认为这是另一种选择。与许多命令一样,您可以在正则表达式之前使用两个连字符(-),这会告诉命令将接下来的内容作为文本处理。您也可以简单地转义连字符(\-),该Q与StackOverflow定义的编程无关。它可能更适合于S.E.相关站点或(Unix和Linux)。使用Q底部的
标志
链接,让主持人移动它。请不要在两个不同的网站上发布相同的Q。在这里发布更多Qs之前,请阅读和。祝你好运。
mangrep | grep-a5'^[:space:][]*-v'
或者
mangrep | sed-n'/^[:space:][]*-v/,/^$/{^$/d;p}'
?无论你是键入
grep-a5-v
还是
grep-a5'-v'
,grep都会看到完全相同的3个参数。使用
gr'e'p“-A”'5'-“v”
可以得到相同的结果。在每种情况下,
grep
都会看到字符串
-A
5
-v
。 $ info_search gawk RS 'RS == "\n"' Records are separated by the newline character ('\n'). In effect, every line in the data file is a separate record, including blank ... $ info_search bash -i `-i' Force the shell to run interactively. Interactive shells are ...