web-dev-qa-db-ja.com

コマンドの特定のオプションの段落をすぐに取得する方法は?

たとえば、apt-getのマニュアル全体ではなく、マンページを介した検索を使用せずに、端末プロンプトから-fオプションにすぐにジャンプしたいです。

8
R S

manで使用されるデフォルトのページャーはlessです。 less環境変数を介してLESSが直接理解するERE(拡張正規表現)検索パターンを渡すことができます。この場合、次のようにする必要があります。

LESS='+/-f' man apt-get

これは、/-fを実行した後にman apt-getを渡すのとまったく同じです。

これで、manページのすべての-fsが強調表示され、目的の1つ、つまりオプション-fに直接ジャンプできます。EREを利用して、スペース/タブで始まる行のみを一致させることができます、その後に-fが続きます:

LESS='+/^[[:blank:]]+-f' man apt-get

これはここで行いますが、すべてのページで正確ではない可能性があります。これは、最初のスペース/タブの後に-fで始まるものに一致するためです。そのような場合に必要なパターンに少し手を加えてください。

これを頻繁に行う場合、検索パターンとmanページを渡して引数として検索する小さな関数を作成できます。

6
heemayl

検索するものにスラッシュを入力し、Enterキーを押します。最初の発生箇所にジャンプします。押す N 次の発生に移動し、 B 戻る。したがって、この場合:

/-f <enter>
9
James

sedを使用して、ハイフンで始まるオプションの段落全体を表示します。単一のコマンドを実行してすぐに-fオプションの段落全体を表示するには、次を使用します。

man apt-get | sed -n '/-f,/,/^$/p'
   -f-,--no-f, -f=no or several other variations.

   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken.  

これはman -fapt-getオプションの段落全体を返しますが、上記のコマンドは-fの後のコンマを削除することで改善でき、次のようにさらに便利になります。

man apt-get | sed -n '/-f/,/^$/p'

これは複数の段落を返しますが、そのほとんどは読みたくないものです。複数の段落の最初の行を読むと、-f, --fix-brokenオプションを含む段落のみを表示したいことがわかります。これを次のように実行します。

man apt-get | sed -n '/--fix-broken/,/^$/p'
   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken. 

これは、読みたい出力のみを返します。このメソッドは、ハイフンで始まる他のオプションで機能します。また、一般に、apt-getだけでなく、他のコマンドでハイフンで始まるオプションを検索する場合にも機能します。

Sedで追加情報を表示する

1つの段落の説明で十分な情報が得られない場合、次のコマンドは最初の段落を前のコマンドと同じように表示し、次の段落も次の段落を表示します。

LESS='+/^[[:space:]]*-f' man apt-get  

このコマンドの結果は、次の段落はあまり興味深いものではないことを示していますが、一部のオプションでは次の段落も興味深いものです。そのため、これも知っておくと便利なコマンドです。

1
karel