マニュアルページ検索処理

マニュアルページ検索処理

man -Kフォーマットされた出力は検索されず、マークアップソースが検索されるようです。例えば

 man -K warranties

warrantiesxcalc(1)など、文字列を含まない多くのマンページが提供されています。また、特殊文字を含む文字列を検索することは非常に困難です。

 man -K 7 '\f'

含まれていないページがたくさんあります\f

 man -K 7 '\\f'

偽の肯定を表示しないようですが、文字列を含むascii(7)も表示しません\f

この問題をどのように解決できますか?

答え1

~によるとLinux手動、最初の例ではリテラルを検索します。\f、フォントの変更に関するほとんどのマニュアルページにあります。

The international counterpart of ASCII is known as ISO 646.
.LP
The following table contains the 128 ASCII characters.
.LP
C program \f(CW\(aq\eX\(aq\fP escapes are noted.
.if t \{\
.ft CW
\}
.TS
l l l l l l l l.

これはascii(7)Debian 3.44-1パッケージを示していますmanpages。ファイルには他のインスタンスは含まれていません。\f、そして一つもありません。\\f

FreeBSDmanが不足して-Kオプションで、OSX はascii.7フォント切り替えを使用しません。\f、あなたはおそらくLinuxに言及しているでしょう。 Linuxmanプログラムは正規表現をオプションでサポートします。--regex。デフォルトでは正規表現を使用しません。

探しているからフォーマット済み \f、対応する文字ペアを生成したトークンを見つける必要があります。ではascii.7線が表示されます。

014   12    0C    FF  '\f' (form feed)        114   76    4C    L

によって

012     10      0A      LF  \(aq\en\(aq (new line)      112     74      4A      J

つまり、 groff マクロを使用します。\en、以下を検索できます。

man -K 7 '\en'

より短い出力が得られます(Debian 7では、5811行対57322行)。ここに結果を表示するには、ヘッダー/フッター行だけで十分です。

ASCII(7)                    Linux Programmer's Manual                    ASCII(7)
Linux                               2009-02-12                           ASCII(7)
COPY(7)                  PostgreSQL 9.1.22 Documentation                  COPY(7)
PostgreSQL 9.1.22                   2016-05-27                            COPY(7)
CPUSET(7)                   Linux Programmer's Manual                   CPUSET(7)
Linux                               2008-11-12                          CPUSET(7)
GITCORE-TUTORIAL(7)                 Git Manual                GITCORE-TUTORIAL(7)
Git 1.7.10.4                        03/19/2016                GITCORE-TUTORIAL(7)
GROFF_CHAR(7)                                                       GROFF_CHAR(7)
Groff Version 1.21                 25 June 2012                     GROFF_CHAR(7)
GROFF_MDOC(7)          BSD Miscellaneous Information Manual         GROFF_MDOC(7)
GROFF_TRACE(7)                                                     GROFF_TRACE(7)
Groff Version 1.21                 25 June 2012                    GROFF_TRACE(7)
MAN(7)                      Linux Programmer's Manual                      MAN(7)
Linux                               2012-08-05                             MAN(7)

もちろん、これは関連するマークアップを知ることに依存します。その他同じことを表現する方法)。タグを表示する理由manは、検索機能に依存できないためです。フォーマット済みマンページ。

しばらくしても、フォーマットされたcatmanマニュアルページ用のディレクトリを保存するのが一般的でした。

  • マニュアルページフォーマットが遅い
  • 一部のベンダーはフォーマットされたマニュアルページを配布しません(またはSunなどの一部のベンダーはnroff以外の形式でマークアップを提供して状況を複雑にします)。

一人で作ることができます。KWIC指数すべてのマニュアルページのすべての単語はフォーマットされていますが、それでも

  • 多くのスペースを占め、
  • 作成するのに時間がかかる

関連情報