14 votes

Pourquoi les titres de section des pages de manuel ne sont-ils pas entièrement greppables ?

Ceci a été testé dans El Capitan et dans la High Sierra d'un collègue, dans le terminal standard (bash).

user@hostname ~ $ man ls | grep "BU"
BUGS
user@hostname ~ $ man ls | grep "BUG"
user@hostname ~ $ 
user@hostname ~ $ man ls | grep "IEEE"
     files in order to be compatible with the IEEE Std 1003.2 (``POSIX.2'')
     The ls utility conforms to IEEE Std 1003.1-2001 (``POSIX.1'').

Pour clarifier : "BUGS" est un titre de section dans cette page de manuel (et dans d'autres). Pour les titres de section, l'extraction ne semble fonctionner que pour les deux premiers caractères ; ceci est cohérent avec les différents titres de section que nous avons essayés. Pour le reste du contenu, grep semble fonctionner comme prévu.

Je me suis connecté à une boîte Linux non BSD (Amazon Linux) et elle ne semble pas présenter le même comportement.

Qu'est-ce qui se passe ici ?

15voto

kenneedham Points 92

Vous pouvez voir ce qui se passe si vous visualisez les codes bruts dans une page de manuel. Une façon de le faire est d'exporter la page de manuel vers un fichier et d'inspecter son contenu directement :

man ls > man.ls
nano man.ls

Le mot "BUGS" ressemble en fait à ça dans le fichier :

B^HBU^HUG^HGS^HS

Vous verrez que les en-têtes contiennent des caractères de formatage, de sorte que le mot "BUGS" n'est pas présent en entier.


Si vous voulez accéder au contenu en clair de la page de manuel, vous pouvez utiliser la commande

man -P cat <thepage>

Le site -P définit le pager sur d'autres systèmes unix et cat ignorera les informations de formatage, donnant une sortie en texte clair. Cependant, cela ne semble pas fonctionner sous MacOS, et la sortie doit donc être modifiée manuellement. col -b étape dans le pipeline :

man ls | col -b | grep BUGS

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X