我发现在命令行的手册页中使用 grep 查找文本很有用,例如特定选项。
但是,grep
在手册页上操作时无法按预期工作,如下所示,其中模式"-f"
仅匹配"-"
而模式"--file"
不匹配(alias grep='grep --color=always'
):
nlykkei-mbp:~ nlykkei$ alias grep
alias grep='grep --color=always'
nlykkei-mbp:~ nlykkei$ man grep | grep -e "-f"
[-e pattern] [-f file] [--binary-files=value] [--color[=when]]
-F, --fixed-strings
-f file, --file=file
-h, --no-filename
--binary-file=without-match option.
-L, --files-without-match
-l, --files-with-matches
--binary-files=value
and the behaviour of the -f flag when used with an empty pattern file is
nlykkei-mbp:~ nlykkei$ man grep | grep -e "--file"
nlykkei-mbp:~ nlykkei$ echo "--file" | grep -e "--file"
--file
nlykkei-mbp:~ nlykkei$ ▒
相反,匹配管道文本echo
按预期工作,那么这与手册页的“不可见”格式有关吗?是否可以在手册页中可靠 grep 文本?
注意:我知道man -k
and man -K
,但这些并不能完全解决我想要实现的目标。
解决方案 1:为 man 使用特定的 conf 文件
一个配置文件
.man.raw.conf
一个使用的例子
man
解决方案 2:使用
colcrt -
ps 1:没有
-
colcrt 添加更多垃圾ps 2:这个问题和答案在 linux 上没有意义,因为不一样的行为。
您不应该在手册页上使用 grep。手册页经过编码(不是纯英文),内容与您要搜索的句子不匹配。
假设程序
man
用于less
显示手册页,则有一种方法可以在less
. 继续阅读。要确认您的手册页是由 显示的
less
,请键入man grep
(或其他命令),按enter并在查看手册页时仅按键h。如果小于,则显示的帮助页面的标题为:SUMMARY OF LESS COMMANDS。一旦你确认了这一点。您应该知道它less
能够通过使用/键自行进行搜索(如果需要,按q到quit
显示的帮助页面)。如果按:并按回车键,您将看到
-f
突出显示(按下n
将移动到下一个匹配项)。或者,如果您只需要查看与字符串匹配的行,请执行以下操作:
如果您需要从命令行激活此类搜索,请执行以下操作: