コマンドの指定されたオプションについてのみ「man」ドキュメントを表示する方法はありますか


24

の意味を知りたい場合wget -bは、でマニュアルを確認しman wget-bオプションを検索します。

   -b
   --background
       Go to background immediately after startup.  If no output file is specified via the -o, output is redirected to wget-log.

のようなコマンドで結果を取得したいman wget -b。(もちろんこれは機能しません。)

それを可能にする同様の方法はありますか?


wget -h | グレップ'\ -b'
Faheem Mitha

回答:


5

マンページをawkパーツにリダイレクトし、パーツを抽出できます。

man wget | awk '/^ *-b *.*$/,/^$/{print}'
       -b
       --background
           Go to background immediately after startup.  If no output file is specified via the -o, output is redirected to wget-log.

その部分は、a -bと空行の間のすべてです。


1
{print}省略することができます
コスタ

おかげで、とで使用しようとしましたがGNU Awk 4.0.1(Ubuntu)GNU Awk 3.1.7(CentOS)awk version 20070501(OS X)のみ動作し4.0.1ます。
アイアンサンド

1
.*$省略することもできます
ウォルタートロス

22

lessあなたが男のページャーとして使用する場合は、試すことができます

LESS="+/^\s+-b" man wget

どこで

  1. +less開いた後に次の操作を実行するシンボル
  2. / 検索を開始するコマンド
  3. ^\s+-b行頭から一致-bする正規表現

必要に応じて、シェルに適切な関数を配置できます

function rman {
#USAGE: rman programm.name option.to.search (with "-" symbol)
LESS="+/^\s+$2" man "$1"
}

そしてそれ~/.bashrcを例えばに追加します。


これは私にとってはうまくいきません。複数行のマッチングが行われないためだと思います
-rb612

14

実行man commandする/と、を押して検索するプレーンテキストを入力できます。たとえば、入力する/-b-b、テキスト内の最初のインスタンスにジャンプします。


@drewbennああ、いいね。/+ enterを押して続行しました。
ふわふわ

10

私はと呼ばれるこれを行うには小さなスクリプトを書いたを、例えばhe wget -b

基本的な戦略は-b、行の最初の単語としてオプション(例:)を検索し、次のヘッダー、または一致するインデントがある次の行まで印刷します。

それを使用できない場合は、basicを使用して同様のものを取得できますsed。たとえば、

man wget | sed -ne '/^  *-b/,/^$/p'

また、descスクリプトは非常に役立ちます。
パンディア14年

のようにhe、名前をshort helpplus he/ に変更することにしましたman
ミケル14年

新しい例で動作するように更新されましたwget -b
ミケル

3

sayshell.comに接続する次のスクリプトを使用します。少し前にredditからコピーしました:

#!/bin/bash
cmd=$1
shift
args=$*
args=${args/ /+}
w3m -dump "http://explainshell.com/explain/$cmd?args=$args"

私はそれに名前rmanをつけて、それを私の家に入れました$PATH。の使用法wget -b

$ rman wget -b    
[logo]

  • about
  •
  • [                    ]

wget(1) -b

The non-interactive network downloader

-b
--background
    Go to background immediately after startup.  If no output file is specified via the -o, output is
    redirected to wget-log.

source manpages: wget

このスクリプトを少し調整して、最初にゴミを表示しないようにすることができます。

編集:私はここからそれを得。著者に感謝します!


3
これは、マシンにインストールされているコマンドとは異なるコマンドの実装/バージョンを文書化する可能性があることに注意することが重要です。
ステファンシャゼル

また、コードにエスケープや不適切な引用はありません。
l0b0

はい、私はそれを強調すべきかと思いました。ただし、特定のオプションがプログラムの1つのフレーバーで何かを意味する場合、通常は別のフレーバーで同じことを意味します。多くの場合、一部のオプションが欠落しています。繰り返しますが、これは私の経験です。
アルカディウスドラブチク

@ l0b0:私はこのコードを書いていない、私は最初の場所ではbashを使用していないだろう
はArkadiusz Drabczyk

0

あるいは、あなたgrepがGNU grepである場合、次のように使用できます。

man wget | grep -EA3 '^ *-b'

which -A(GNU拡張)は、一致する行の後の印刷行数(ここ3)です。完全な説明のために適切な番号を使用できます。

例:

$ man wget | grep -EA3 '^ *-b'
       -b
       --background
           Go to background immediately after startup.  If no output file is specified via the -o, output is
           redirected to wget-log.

$ man grep | grep -EA3 '^ *-A'
       -A NUM, --after-context=NUM
              Print NUM lines of trailing context after matching lines.  Places a line containing a  group  separator
              (--)  between  contiguous groups of matches.  With the -o or --only-matching option, this has no effect
              and a warning is given.

0

コマンドラインエクスペリエンスについては、@ Costasバージョンを使用してください。

軽量バージョンの場合man、と同じテキストインターフェイスを使用しますless。これは、と同じコマンドを使用できることを意味しますless

# open manual to wget
man wget

# search for -b
/-b

# use "n" to navigate to next version of -b until you find what you want
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.