在 POSIX 程序员手册的手册页中搜索

在 POSIX 程序员手册的手册页中搜索

我想搜索与restrict关键字匹配的 POSIX 函数,我的想法(对其他想法持开放态度)是搜索 POSIX 程序员手册的概要部分并\<restrict\>输出匹配行。我知道我可以使用 匹配章节-S并搜索手册页-K。如何将搜索限制为 POSIX 程序员手册?有没有一种方法可以按“手动”进行过滤,即通过手册页顶部的居中文本进行过滤?

答案1

POSIX 程序员手册中有自己的专用章节man,即0p(头文件)、1p(命令)和3p(函数)。您可以将搜索限制在这些章节中:

[haxiel@testvm1 ~]$ man -k -s 0p,1p,3p mmap
mmap (3p)            - map pages of memory

如果要搜索全文,请将-k选项 (apropos) 替换为-K选项 (global apropos)。默认情况下,这将为您提供包含搜索词的所有手册页的交互式集合(请注意,第一个结果会自动打开,并且不在下面显示的列表中)。

[haxiel@testvm1 ~]$ man -K -s 0p,1p,3p 'restrict'
--Man-- next: cpio.h(0p) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: dirent.h(0p) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: dlfcn.h(0p) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: glob.h(0p) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: iconv.h(0p) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]

如果您只需要匹配页面的列表,请使用-w(where) 选项。

[haxiel@testvm1 ~]$ man -K -w -s 0p,1p,3p 'restrict'
/usr/share/man/man0p/aio.h.0p.gz
/usr/share/man/man0p/cpio.h.0p.gz
/usr/share/man/man0p/dirent.h.0p.gz
/usr/share/man/man0p/dlfcn.h.0p.gz
/usr/share/man/man0p/glob.h.0p.gz
/usr/share/man/man0p/iconv.h.0p.gz
/usr/share/man/man0p/in.h.0p.gz

iconv.h.0p.gz如果您随后决定从结果中检查手册页,则可以通过运行来完成man 0p iconv.h


restrict关键字以三种不同的形式出现在 POSIX 程序员手册中:const char *restrictchar **restrictchar *const [restrict]。我们可以更新man命令以使用正则表达式搜索这些模式:

man -K -w -s 0p,1p,3p --regex '(\*+|\[)restrict'

这将搜索并返回包含上述三种形式之一的手册页。

相关内容