Comment obtenir un paragraphe pour certaines options de commande tout de suite?

8

Par exemple, au lieu du manuel complet de apt-getJe veux passer -fdirectement à l' option depuis l'invite du terminal, sans utiliser la recherche dans la page de manuel.

RS
la source
1
@M. Becerra ma question est plus large.
RS
@Becerra Non seulement c'est une question plus large, mais c'est aussi une question différente, car RS veut renvoyer le paragraphe entier d'une option dans les résultats de man, au lieu de renvoyer une liste brouillée de lignes distinctes.
karel

Réponses:

6

Le pager par défaut utilisé par manest less. Vous pouvez passer le modèle de recherche ERE (Extended Regular Expression) qui le lesscomprend directement via la LESSvariable d'environnement, dans votre cas, ce qui suit devrait faire:

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

C'est exactement la même chose que de passer /-faprès avoir fait man apt-get.

Maintenant, cela mettrait en évidence tous les -fs de la manpage, pour passer directement à l'option souhaitée, c'est-à-dire l'option -f, vous pouvez utiliser ERE pour ne faire correspondre que les lignes commençant par des espaces / tabulations, suivies de -f:

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

Bien que cela ferait l'affaire ici, mais pourrait ne pas être précis pour toutes les pages, car cela correspondra à tout ce qui commence par -faprès les espaces / tabulations initiaux. Ajustez un peu le motif pour répondre à vos besoins dans ces cas.

Vous pouvez créer une fonction minuscule pour passer le modèle de recherche et la manpage à rechercher comme arguments, si vous le faites souvent.

heemayl
la source
9

Tapez une barre oblique, la chose que vous recherchez, puis appuyez sur entrée. Vous passerez à la première occurrence. Appuyez sur Npour passer à l'occurrence suivante et Bpour revenir en arrière. Donc, dans ce cas:

/-f <enter>
James
la source
4
Essayez d'ajouter quelques espaces avant le tiret. La plupart du temps, les options sont en retrait et qui devrait sauter droit à l'option: / -f. Cela devrait contourner toutes les utilisations en ligne de -f.
transistor1
1

Utilisez sedpour afficher le paragraphe entier d'une option qui commence par un trait d'union. Pour afficher tout le paragraphe de l' -foption immédiatement en exécutant une seule commande, utilisez:

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.  

Cela renvoie le paragraphe entier pour l' -foption dans man apt-getmais la commande ci-dessus peut être améliorée en éliminant la virgule après -fpour la rendre plus généralement utile comme suit:

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

Cela renvoie plusieurs paragraphes, dont la plupart vous ne voulez pas lire. En lisant les premières lignes des plusieurs paragraphes, vous pouvez voir que vous souhaitez afficher uniquement le paragraphe contenant l' -f, --fix-brokenoption. Procédez comme suit:

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. 

Cela renvoie uniquement la sortie que vous souhaitez lire. Cette méthode fonctionne avec toutes les autres options commençant par un trait d'union, et elle fonctionne également généralement pour la recherche d'options qui commencent par un trait d'union dans d'autres commandes, en plus de cela apt-get.

Affichage d'informations supplémentaires avec sed

Si la description d'un paragraphe ne donne pas suffisamment d'informations, la commande suivante affichera le premier paragraphe de la même manière que la commande précédente et les paragraphes suivants également.

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

Les résultats de cette commande montrent que les paragraphes suivants ne sont pas très intéressants, mais pour certaines options, les paragraphes suivants sont également intéressants. C'est pourquoi il s'agit également d'une commande utile à connaître.

Karel
la source