如何列出所有具有特定文本的手册页而不显示内容?

如何列出所有具有特定文本的手册页而不显示内容?

我想在所有系统手册页中搜索某个字符串,但我只想获取出现此文本的手册页列表。谷歌返回的前两页结果没有提供我想要的答案(如果存在这样的答案的话)。

让我解释:

我想查看hairpin出现该词的所有手册页。我继续打字man -K hairpin,出现的内容与我打字时的内容类似man nmcli。当我通过退出此手册页时q,屏幕上会显示以下内容:

--Man-- next: bridge(8) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]

从这里,我可以连续键入Ctrl+D并最终返回到命令提示符,提示符上方显示以下内容:

--Man-- next: bridge(8) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: lldptool-evb22(8) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: systemd.network(5) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: nm-settings(5) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: nm-settings-ifcfg-rh(5) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: systemd.directives(7) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]

我要问的是,是否可以获得如下所示的man pages位置列表?:hairpin

man -<some-option> -K hairpin
nmcli(1)
bridge(8)
lldptool-evb22(8)
systemd.network(5)
nm-settings(5)
nm-settings-ifcfg-rh(5)
systemd.directives(7)

编辑:
使用句子搜索 Google 并不总是返回解决特定查询的结果。这显然是这个问题的情况,正如一些人指出的那样,它确实是重复的。

但是,最好不要删除它,因为它显示了 Ubuntu 系统上返回的特定输出。 Ubuntu 用户可能会从这个问题中受益。

编辑2:现在
搜索skip (Ctrl-D)这个问题出现在Google结果的第一页中,而之前没有返回任何内容!

答案1

您可以使用以下-w选项:

   -w, --where, --path, --location
          Don't actually display the manual pages, but do print the  loca‐
          tion(s) of the source nroff files that would be formatted.

这几乎返回了您所要求的内容:

$ man -wK hairpin
/usr/share/man/man1/nmcli.1.gz
/usr/share/man/man8/ip-link.8.gz
/usr/share/man/man8/bridge.8.gz
/usr/share/man/man5/systemd.network.5.gz
/usr/share/man/man5/nm-settings.5.gz
/usr/share/man/man5/nm-settings-ifcfg-rh.5.gz
/usr/share/man/man7/systemd.directives.7.gz

如果这还不够,您可以将其解析为形状:

$ man -wK hairpin | perl -pe 's#.*/([^/]+)\.(\d+)\.gz#$1($2)#'
nmcli(1)
ip-link(8)
bridge(8)
systemd.network(5)
nm-settings(5)
nm-settings-ifcfg-rh(5)
systemd.directives(7)

最后,你可以将其变成一个函数。将此行添加到 shell 的初始化文件中(~/.bashrc例如):

function sman(){ man -wK "$@" | perl -pe 's#.*/([^/]+)\.(\d+)\.gz#$1($2)#'; }

然后,您可以运行:

$ sman hairpin
nmcli(1)
ip-link(8)
bridge(8)
systemd.network(5)
nm-settings(5)
nm-settings-ifcfg-rh(5)
systemd.directives(7)

相关内容