web-dev-qa-db-ja.com

POSIXプログラマーズマニュアルのマニュアルページ内を検索

restrictキーワードに一致するPOSIX関数を検索したいと思います。私のアイデア(他のアイデアを受け入れる)は、POSIXプログラマーズマニュアルの概要セクションで\<restrict\>を検索し、一致する行を出力することです。セクションを-Sで照合し、manページを-Kで検索できることを知っています。検索をPOSIXプログラマーズマニュアルに制限するにはどうすればよいですか? 「手動」、つまりマニュアルページの上部にある中央揃えのテキストでフィルタリングする方法はありますか?

1
rubystallion

POSIXプログラマーズマニュアルには、manに専用のセクション、つまり0p(ヘッダーファイル)、1p(コマンド)、および3p(関数)があります。検索を次のセクションに制限できます。

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

全文を検索する場合は、-kオプション(適切)を-Kオプション(グローバル適切)に置き換えます。デフォルトでは、これにより、検索語を含むすべてのマニュアルページのインタラクティブなコレクションが提供されます(最初の結果は自動的に開き、以下に示すリストには含まれないことに注意してください)。

[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 **restrict、およびchar *const [restrict]の3つの異なる形式で表示されます。 manコマンドを更新して、正規表現を使用してこれらのパターンを検索できます。

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

これにより、上記の3つのフォームのいずれかを含むmanページが検索されて返されます。

2
Haxiel