Unix 将';曼格雷普';旗帜
我确实经常使用grep,但我很想改进一下 关于这个问题。我想缩小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' 但他们
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
...