Page suivantePage pr�c�denteTable des mati�res

10. Comment puis-je avoir un texte en pur ASCII sans tous ces fichus ^H^ de contr�le ?

Jetez un oeuil � la commande col(1), col peut enlever ces caract�res d'effacement. Pour les impatients, voici la commande :

$ groff -t -e -mandoc -Tascii manpage.1 | col -bx> manpage.txt
Les options -t et -e disent � groff d'utiliser les pr�processeurs tbl et eqn. C'est inutile pour les pages de manuel ne n�cessitant pas de pr�processeur mais cela ne g�ne pas, si ce n'est une surcharge du processeur. D'un autre c�t�, ne pas utiliser -t alors qu'il est n�cessaire fera que les tableaux seront tr�s mal format�s. Vous pourrez m�me trouver ("deviner" serait un terme plus exact) la commande n�cessaire pour traiter tel ou tel document groff (pas uniquement des pages de manuel) par le biais de grog :
$ grog /usr/man/man7/signal.7
groff -t -man /usr/man/man7/signal.7

En fait, grog signifie "GROff Guess", et cet outil fait bien ce qu'il dit (en anglais, guess = deviner...) : il tente de deviner la commande n�cessaire pour formater un document groff en fonction de son contenu. S'il �tait parfait, nous n'aurions jamais plus besoin d'options. Mais s'il arrive qu'il d�termine un mauvais jeu de macros, je ne l'ai par contre jamais vu se tromper sur les pr�processeurs � employer.

Voici un petit script Perl r�alis� par l'auteur de ce document, qui peut supprimer les en-t�tes et les pieds de page, ce qui permet de gagner quelques longueurs de papier lorsque l'on imprime de longues et complexes pages de manuel. Sauvez-le dans un fichier nomm� strip-header et mettez-le en mode 755.

#!/usr/bin/perl -n
#  pour qu'il avale tout le fichier en une seule fois:
undef $/;
#  on enleve les sauts de page:
s/\n{4}\S.{50,}\n{6}\S.{50,}\n{3}/\n/g;
#  le premier en-tete et le dernier pied de page:
s/\n\S.{50,}\n//g;
#  transorme deux ou plus lignes vides consecutives en une seule:
s/\n{3,}/\n\n/g;
#  et voila ce qui reste...
print;

Il faut appeler ce programme en tant que premier filtre apr�s la comande man, car il se base sur le nombre de sauts de ligne issus de groff. Par exemple :

$ man bash | strip-headers | col -bx> bash.txt


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:31