我想在手册页中只阅读我要查找的内容。
例如,只读-k
手册页中的man
部分我可以使用
man man | grep -E '(-k)'
结果:
man -k [apropos options] regexp ...
man -k printf
-k, --apropos
which in turn overrides the $PAGER environment variable. It is not used in conjunction with -f or -k.
结果很糟糕,因为不是我需要的所有部分。
所以目前我正在使用:
man man | grep -E '(-k|'')'
结果是所有文字,但标有-k
红色。
我的问题是如何获得类似的输出:
man -k [apropos options] regexp ...
man -k printf
Search the short descriptions and manual page names for the keyword printf as regular expression. Print out any matches.
Equivalent to apropos printf.
-k, --apropos
Equivalent to apropos. Search the short manual page descriptions for keywords and display any matches. See apropos(1)
for details.
答案 0 :(得分:0)
您应该考虑-k(-AnyOther)
部分的含义例如,这个条目怎么样?:
-P pager, --pager=pager
Specify which output pager to use. By default, man uses pager -s. This option overrides the $MANPAGER environment variable, which in turn overrides the $PAGER environment variable. It
is not used in conjunction with -f or -k.
它也以某种方式与-k相关。
根据您的示例,我想您要跳过此条目。 如果是这样,我建议使用两个正则表达式:
"^\s*-k" # for the case when -k is at the beginning
"man -k" # self explainable :)
在找到的条目中,您应该打印下面的所有行,在第一个可打印字符之前的空格比您的匹配中的空格更多。
我不确定grep或sed是否适合这项工作。我个人会尝试使用python或awk。