web-dev-qa-db-ja.com

特定のキーワードを含むすべてのmanファイルを検索する方法は?

ファイル内のコンテンツをパラメーターとして指定して、ファイルを検索する方法を学びたいです。次に、このソリューションを適用して、Richard Stallmanによって提供されたコマンドを検索します(manページを使用)。

7
juggernauthk108

このコマンドは、キーワードStallmanを含むmanファイルのファイル名を表示します。

zgrep -l Stallman /usr/share/man/man?/*

15.10の出力は次で始まります。

/usr/share/man/man1/cat.1.gz
/usr/share/man/man1/comm.1.gz
/usr/share/man/man1/ctags.1.gz
/usr/share/man/man1/ctags.emacs24.1.gz

その後、man catman commなどを使用して、通常どおりに閲覧できます。

11
philsf

man man から:

-K, --global-apropos
      Search for text in all manual  pages.   This  is  a  brute-force
      search,  and is likely to take some time; if you can, you should
      specify a section to reduce the number of pages that need to  be
      searched.   Search terms may be simple strings (the default), or
      regular expressions if the --regex option is used.

-w, --where, --location
      Don't actually display  the  manual  pages,  but  do  print  the
      location(s) of the source nroff files that would be formatted.

組み合わせ:

man -wK 'Richard M Stllman'

通常、マンページにはRichard Stallmanだけがあり、2つの単語の間にさまざまなスペースがあります。そのため、正規表現が適切な場合があります。

--regex
      Show all pages with any part of  either  their  names  or  their
      descriptions   matching   each   page   argument  as  a  regular
      expression, as with  apropos(1).   Since  there  is  usually  no
      reasonable  way  to  pick  a  "best"  page  when searching for a
      regular expression, this option implies -a.

そう:

man --regex -wK 'Richard *Stallman' 
7
muru

この方法では、マンページ全体でキーワードを検索するのではなく、各マンページのタイトルと簡単な説明のみを検索します。あなたのケースでは十分ではありませんが、何かをすばやく調べるのに便利です。目的の結果が返されない場合は、@ philsfanswer を使用する必要があります。

aproposコマンドを使用して、インストールされているすべてのマンページのタイトルとキーワードの説明をすばやく検索できます。

$ apropos chat
chat (8)             - Automated conversational script with a modem
chattr (1)           - change file attributes on a Linux file system
empathy (1)          - GNOME multi-protocol chat and call client

whatisを使用して、既知のマンページの説明を表示できます。

$ whatis empathy
empathy (1)          - GNOME multi-protocol chat and call client

前述したように、このメソッドはマンページ全体を検索しないため、apropos Stallmanは何も返しません...

3
Byte Commander