web-dev-qa-db-ja.com

ハイフン付きオプションのコマンドのmanページをgrepしてください。

findに一致するtypeコマンドのmanページをgrepすると、不要な検索結果が多数返されます。代わりに、-typeの検索結果をonly返すコマンドを使用したいと思います。

コマンドman find | grep -typeは機能しません。それは返します:

grep: invalid option -- 't'
8
karel

ハイフンで始まるパターンをgrepする場合は、指定するパターンの前に--を使用します。

man find | grep -- -type

たとえば、オプションを説明するセクション全体などの詳細情報が必要な場合は、Sedを使用してみてください。

$ man find | sed -n '/-mindepth/,/^$/p'
   -mindepth levels
          Do  not apply any tests or actions at levels less than levels (a
          non-negative integer).  -mindepth  1  means  process  all  files
          except the command line arguments.

ただし、これは検索するすべてのオプションで機能するわけではありません。例えば:

$ man find | sed -n '/^[[:space:]]*-type/,/^$/p'
   -type c
          File is of type c:

あまり役に立たなかった。さらに悪いことに、いくつかのオプションについては、実際には読んでいなかったときに、オプションに関する全文を読んだと誤解してしまう可能性があります。たとえば、-deleteを検索すると、その見出しの下にsecond段落として含まれている非常に重要なWARNINGが省略されます。


私の推奨は、man環境変数を設定してLESSへの標準の呼び出しを使用することです。私はこのサイトの私の回答でそれをかなり一般的に使用しています。

LESS='+/^[[:space:]]*-type' man find

これがどのように機能するかの詳細については、以下を参照してください。

LESS='+/^[[:space:]]*LESS ' man less
LESS='+/\+cmd' man less
LESS='+/\/' man less

Manページでオプションをすばやくインタラクティブに検索したい場合は、lessの検索機能の使用方法を学んでください。そしてまた見なさい:

10
Wildcard

または、lessにパイプして、検索語句をフィードします。

man 1 find | less -p ' -type'

(これは、lessがフィードであるかどうかに応じて失敗する可能性があります。たとえば、-typeはバックスペースで太字になっています。)

1
thrig