Grep
在 POSIX 程序員手冊的手冊頁中搜尋
我想搜尋與
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 *restrict
、char **restrict
和char *const [restrict]
. 我們可以更新man
命令以使用正則表達式搜尋這些模式:man -K -w -s 0p,1p,3p --regex '(\*+|\[)restrict'
這將搜尋並返回包含上述三種形式中的任何一種的手冊頁。