すべてのmanページ内のハイフンを含むパターンを検索するコマンドを見つけようとしています。
私はを見てman man、これらの3つのオプションを見つけました:
-K、--global-aproposすべてのマニュアルページでテキストを検索します。これはブルートフォース検索であり、時間がかかる可能性があります。可能であれば、セクションを指定して、検索する必要があるページの数を減らす必要があります。検索語は、単純な文字列(デフォルト)、または
--regexオプションが使用されている場合は正規表現です。
-w、--where、--path、--locationマニュアルページを実際に表示するのではなく、フォーマットされるソースnroffファイルの場所を印刷します。
-S list、-s list、t--sections=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つのmanページを正しく検出するため、そうではありません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を正規表現に置き換えようとしましmark.modified.linesた。ハイフン自体は、.任意の文字と一致するメタ文字に置き換えられます。
$ man -s1 -Kw --regex 'mark.modified.lines'
それでもページは印刷されませんが、テキストがbashmanページに書かれていることは知っています。
.次のコマンドを使用しているため、正規表現のメタ文字は期待どおりに解析されているようです。
$ man -s1 -Kw --regex 'mark.mo'
プリント:
/usr/share/man/man1/x11perfcomp.1.gz
/usr/share/man/man1/xditview.1.gz
また、これら2つのマンページ(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のmanページは印刷しません。
/usr/share/man/man1/bash.1.gz
この行が含まれているので、私はそれを期待しましたが
mark-modified-lines (Off)
^^^^^^^
manページ内でハイフンを含むパターンを検索することはできますか?