web-dev-qa-db-fra.com

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

Par exemple, au lieu de tout le manuel de apt-get, je souhaite passer immédiatement à l'option -f de l'invite du terminal, sans utiliser la recherche dans la page de manuel.

8
R S

Le pager par défaut utilisé par man est less. Vous pouvez transmettre le modèle de recherche ERE (Extended Regular Expression) que less comprend directement via la variable d’environnement LESS. Dans ce cas, procédez comme suit:

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

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

Maintenant, cela mettrait en évidence tous les -fs de la page man, pour passer directement à l'option souhaitée, c.-à-d. L'option -f, vous pouvez utiliser ERE pour ne faire correspondre que les lignes commençant par des espaces/des onglets , suivi de -f:

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

Bien que cela puisse être fait ici mais que cela ne soit toujours pas exact pour toutes les pages, cela correspond à tout ce qui commence par -f après les espaces/tabulations initiales. Modifiez légèrement le motif pour répondre à vos besoins dans ces cas.

Vous pouvez créer une petite fonction pour transmettre le modèle de recherche et la page man à rechercher comme arguments, si vous le faites souvent.

6
heemayl

Tapez une barre oblique, la chose que vous recherchez, puis appuyez sur Entrée. Vous allez sauter à la première occurrence. presse N pour passer à la prochaine occurrence et B retourner. Donc, dans ce cas:

/-f <enter>
9
James

Utilisez sed pour afficher l’ensemble du paragraphe d’une option commençant par un trait d’union. Pour afficher tout le paragraphe de l'option -f 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 de l'option -f dans man apt-get, mais la commande ci-dessus peut être améliorée en supprimant la virgule après -f pour la rendre plus utile, comme suit:

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

Cela retourne plusieurs paragraphes, que vous ne voulez pas lire pour la plupart. En lisant les premières lignes de plusieurs paragraphes, vous pouvez voir que vous souhaitez afficher uniquement le paragraphe contenant l'option -f, --fix-broken. Faites ceci 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 ne renvoie que la sortie que vous voulez lire. Cette méthode fonctionne avec toutes les autres options commençant par un trait d'union, et elle fonctionne généralement aussi pour la recherche d'options commençant par un trait d'union dans d'autres commandes, en plus de 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 même paragraphe que la commande précédente et les paragraphes suivants.

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 le sont aussi. C'est pourquoi c'est aussi une commande utile à connaître.

1
karel