Hoe krijg ik een gewoon manpage in tekstformaat zonder al die ^H^'s ?

Kijk eens naar col(1), omdat col backspacereeksen kan filteren. Gewoon voor het geval je niet zo lang kan wachten:

funnyprompt$ groff -t -e -mandoc -Tascii manpage.1 | col -bx > manpage.txt

De -t en -e switches vertellen groff voor te verwerken met tbl en eqn. Dit is overdreven voor manpages waar geen voorbewerking voor nodig is, maar afgezien van een paar verspilde CPU cycli kan het geen kwaad. Aan de andere kant kan het wel kwaad geen -t toe te passen wanneer het in feitelijk nodig is: de tabel wordt afschuwelijk opgemaakt. Je kunt er zelfs achterkomen (nou ja, gissen is een beter woord) welke opdracht nodig is om een bepaald groff document (niet gewoon manpages) te formatteren door het aanroepen van:

funnyprompt$ grog /usr/man/man7/signal.7
groff -t -man /usr/man/man7/signal.7

"Grog" staat voor "GROff Guess", en het doet wat het zegt--gissen. Als het perfect zou zijn, dan zouden we geen opties meer nodig hebben. Ik heb het onjuist zien gissen bij macropackages en preprocessors. Hier is een door mij geschreven klein perlscript dat de paginakoppen en voettekten kan verwijderen, je daarbij een paar pagina's besparend (en moeder natuur een boom) bij het afdrukken van lange en uitgebreide manpages. Bewaar het in een bestand met de naam strip-headers & chmod 755.

    #!/usr/bin/perl -wn
    #  laat het 't hele bestand in één keer inlezen:
    undef $/;
    #  verwijder eerste koptekst:
    s/^\n*.*\n+//;
    #  verwijder laastste voettekst:
    s/\n+.*\n+$/\n/g;
    #  verwijder pagina-overgangen:
    s/\n\n+[^ \t].*\n\n+(\S+).*\1\n\n+/\n/g;
    #  combineer twee of meer lege regels tot één lege regel:
    s/\n{3,}/\n\n/g;
    #  bekijk wat er over is...
    print;

Je moet het als het eerste filter gebruiken na de opdracht man aangezien het terugvalt op het aantal newlines dat door groff wordt uitgevoerd. Bijvoorbeeld:

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