ハイフンを含むパターンをマニュアルページで検索するには?

ハイフンを含むパターンをマニュアルページで検索するには?

すべてのマニュアルページで、ハイフンを含むパターンを検索するコマンドを見つけようとします。

確認man manし、次の3つのオプションが見つかりました。

-K--global-apropos

すべてのマニュアルページでテキストを検索します。これは時間がかかる可能性がある無差別検索であるため、可能であれば検索する必要があるページ数を減らすためにセクションを指定する必要があります。クエリは、単純な文字列(デフォルト)または正規表現(--regexこのオプションを使用している場合)です。

-w、、、、--where--path--location

実際にはマニュアルページを表示しませんが、フォーマットするソースnroffファイルの場所を印刷します。

-S list、、、-s listt--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-linesregexに置き換えようとしました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

両方のマンページ(x11perfcompxditview)は正規表現と一致します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オプションの説明に記載されている

次を検索します。源泉レンダリングされたテキストではなく、マニュアルページの内容なので、ソースファイルなどのコメントで誤検出が発生することがあります。レンダリングされたテキスト検索がはるかに遅くなります。

ただし、これを正しく使用するには、検索中のテキストのソース表現に関する知識が必要です。

関連情報