Wie bekomme ich sofort einen Absatz für eine bestimmte Befehlsoption?

8

Zum Beispiel apt-getmöchte ich anstelle des gesamten Handbuchs von -fsofort zur Option von der Terminal-Eingabeaufforderung springen , ohne die Manpage durchsuchen zu müssen.

RS
quelle
1
@M. Becerra meine Frage ist breiter.
RS
@Becerra Dies ist nicht nur eine umfassendere Frage, sondern auch eine andere Frage, da RS den gesamten Absatz einer Option in den Ergebnissen von zurückgeben möchte man, anstatt eine durcheinandergebrachte Liste separater Zeilen zurückzugeben.
Karel

Antworten:

6

Der Standard-Pager, der von verwendet wird, manist less. Sie können das ERE-Suchmuster (Extended Regular Expression), lessdas es direkt versteht, über die LESSUmgebungsvariable übergeben. In diesem Fall sollte Folgendes der Fall sein:

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

Dies ist genau das gleiche wie /-fnach dem Passieren man apt-get.

Dies würde nun alle -fs auf der manSeite hervorheben. Um direkt zur gewünschten Option zu springen -f, können Sie ERE nutzen, um nur die Zeilen abzugleichen, die mit Leerzeichen / Tabulatoren beginnen, gefolgt von -f:

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

Dies würde zwar hier funktionieren, ist aber möglicherweise nicht für alle Seiten präzise, ​​da dies mit allem übereinstimmt, was -fnach den ersten Leerzeichen / Tabulatoren beginnt . Passen Sie das Muster ein wenig an, um es in diesen Fällen zu erfüllen.

Sie können eine winzige Funktion erstellen, um das Suchmuster und die manzu suchende Seite als Argumente zu übergeben, wenn Sie dies häufig tun.

heemayl
quelle
9

Geben Sie einen Schrägstrich ein, nach dem Sie suchen, und drücken Sie die Eingabetaste. Sie springen zum ersten Vorkommen. Drücken Sie N, um zum nächsten Ereignis zu gelangen und zurück Bzu gehen. Also in diesem Fall:

/-f <enter>
James
quelle
4
Fügen Sie vor dem Bindestrich einige Leerzeichen hinzu. Meistens werden die Optionen eingerückt und das sollte direkt zur Option springen : / -f. Dies sollte alle Inline-Verwendungen von umgehen -f.
Transistor1
1

Verwenden Sie seddiese Option, um den gesamten Absatz einer Option anzuzeigen, die mit einem Bindestrich beginnt. Um den gesamten Absatz der -fOption sofort anzuzeigen, indem Sie einen einzelnen Befehl ausführen, verwenden Sie:

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.  

Dies gibt den gesamten Absatz für die -fOption in man zurück, apt-getaber der obige Befehl kann verbessert werden, indem das Komma danach entfernt wird -f, um ihn wie folgt allgemeiner nützlich zu machen:

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

Dies gibt mehrere Absätze zurück, von denen die meisten nicht gelesen werden sollen. Wenn Sie die ersten Zeilen der mehreren Absätze lesen, können Sie sehen, dass Sie nur den Absatz anzeigen möchten, der die -f, --fix-brokenOption enthält. Gehen Sie dazu wie folgt vor:

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. 

Dies gibt nur die Ausgabe zurück, die Sie lesen möchten. Diese Methode funktioniert mit allen anderen Optionen, die mit einem Bindestrich beginnen, und sie funktioniert im Allgemeinen auch für die Suche nach Optionen, die mit einem Bindestrich in anderen Befehlen beginnen apt-get.

Zusätzliche Informationen mit sed anzeigen

Wenn die Beschreibung eines Absatzes nicht genügend Informationen enthält, zeigt der folgende Befehl den ersten Absatz genauso an wie der vorherige Befehl und die nächsten Absätze danach.

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

Die Ergebnisse dieses Befehls zeigen, dass die nächsten Absätze nicht sehr interessant sind, aber für einige Optionen sind auch die nächsten Absätze interessant. Aus diesem Grund ist dies auch ein nützlicher Befehl.

Karel
quelle