すべてのマニュアルページで、ハイフンを含むパターンを検索するコマンドを見つけようとします。
確認man man
し、次の3つのオプションが見つかりました。
-K
、--global-apropos
すべてのマニュアルページでテキストを検索します。これは時間がかかる可能性がある無差別検索であるため、可能であれば検索する必要があるページ数を減らすためにセクションを指定する必要があります。クエリは、単純な文字列(デフォルト)または正規表現(
--regex
このオプションを使用している場合)です。
-w
、、、、--where
--path
--location
実際にはマニュアルページを表示しませんが、フォーマットするソースnroffファイルの場所を印刷します。
-S list
、、、-s list
t--sections=list
listは、検索する注文ごとの受動部品のコロンまたはカンマ区切りのリストです。このオプションは
$MANSECT
環境変数をオーバーライドします。 (この-s
スペルはSystem Vとの互換性のためです。)
私はそれらをmark-modified-lines
次のreadlineオプションである検索パターンと組み合わせてみましたman bash
。
$ man -s1 -Kw mark-modified-lines
しかし、ページが見つかりません。
No manual entry for mark-modified-lines
コマンドはコードで終了します16
。
コマンド構文が間違っている可能性があると思いましたが、コマンドが私のシステムで次の単語を含む5つのマニュアルページを正しく見つけたため、そうではありませんguitar
。
$ man -s1 -Kw guitar
/usr/share/man/man1/ffmpeg-all.1.gz
/usr/share/man/man1/ffserver-all.1.gz
/usr/share/man/man1/ffplay-all.1.gz
/usr/share/man/man1/ffmpeg-filters.1.gz
/usr/share/man/man1/ffprobe-all.1.gz
おそらく単語のハイフンが問題の原因かもしれないと思いました。次のように説明されているオプションが見つかりman bash
ました。--regex
--regex
正規
apropos(1)
表現を検索するときに「最も良い」ページを選択するための合理的な方法が一般的ではないため、このオプションはを意味します-a
。
このオプションを使用し、単語をmark-modified-lines
regexに置き換えようとしましたmark.modified.lines
。ここで、ハイフン自体は.
すべての文字に一致するメタ文字に置き換えられました。
$ man -s1 -Kw --regex 'mark.modified.lines'
bash
テキストがマニュアルページに記録されていることを知っていますが、まだページは印刷されません。
.
次のコマンドにより、正規表現のメタ文字が期待どおりに解析されるようです。
$ man -s1 -Kw --regex 'mark.mo'
印刷:
/usr/share/man/man1/x11perfcomp.1.gz
/usr/share/man/man1/xditview.1.gz
両方のマンページ(x11perfcomp
、xditview
)は正規表現と一致しますmark.mo
。具体的には、man x11perfcomp
次の行が含まれます。
Mark Moraes wrote the original scripts to compare servers.
^^^^^^^
次の行を含めてくださいman xditview
。
Mark Moraes (University of Toronto)
^^^^^^^
ただし、man -s1 -Kw --regex 'mark.mo'
bash のマニュアルページは印刷されません。
/usr/share/man/man1/bash.1.gz
次の行が含まれているので、そうすると予想しましたが:
mark-modified-lines (Off)
^^^^^^^
ハイフンを含むパターンをマニュアルページで検索できますか?
答え1
man -K
レンダリングではなく、マニュアルページのソースコードを検索します(図を参照man
)。ハイフンはエンコードされているので、次を検索する必要があり\-
ます。
man -s1 -Kw 'mark\-mo'
はい、とてもあいまいです。このman
ページ-K
オプションの説明に記載されている
次を検索します。源泉レンダリングされたテキストではなく、マニュアルページの内容なので、ソースファイルなどのコメントで誤検出が発生することがあります。レンダリングされたテキスト検索がはるかに遅くなります。
ただし、これを正しく使用するには、検索中のテキストのソース表現に関する知識が必要です。