Grep

在 POSIX 程序員手冊的手冊頁中搜尋

  • January 7, 2019

我想搜尋與restrict關鍵字匹配的 POSIX 函式,我的想法(對其他想法開放)是搜尋 POSIX 程序員手冊的 SYNOPSIS 部分以查找\<restrict\>並輸出匹配行。我知道我可以-S-K. 如何將搜尋限制為 POSIX 程序員手冊?有沒有辦法通過“手動”過濾,即通過手冊頁頂部的居中文本?

POSIX Programmer’s Manual 在 中有自己的專用部分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'

這將搜尋並返回包含上述三種形式中的任何一種的手冊頁。

引用自:https://unix.stackexchange.com/questions/492804