Wenn ich man ls > temp.txt
die Ausgabe-Textdatei ausführe, ist sie beschädigt. Mit korrumpiert meine ich, dass der erste und der letzte Buchstabe in einigen Wörtern zu oft wiederholt werden.
Mehrere erste Zeilen in temp.txt
:
LS(1) BSD General Commands Manual LS(1)
NNAAMMEE
llss -- list directory contents
SSYYNNOOPPSSIISS
llss [--AABBCCFFGGHHLLOOPPRRSSTTUUWW@@aabbccddeeffgghhiikkllmmnnooppqqrrssttuuwwxx11] [_f_i_l_e _._._.]
DDEESSCCRRIIPPTTIIOONN
Und so weiter. Ohne Umleitung man ls
ist das völlig normal. Was ist los?
terminal
command-line
bash
Specksucher
quelle
quelle
less
odermore
die Formatierung korrekt an. Wenn Sie verwendenvim
, werden die unformatierten Backspaces (^H
) mit den zusätzlichen Buchstaben angezeigt.Antworten:
Von
man man
:man
druckt eine formatierte Version der Manpage, Unterstriche und Doppelbuchstaben werdenanalysiertKommentar von MichaelT
quelle
Es war einmal so, dass Computer routinemäßig an Teletypen (Ferndrucker) angeschlossen wurden, die den gesamten Text in Echtzeit auf Papier druckten, sobald er empfangen wurde. Obwohl es in Ferndruckern keine Möglichkeiten für unterstrichenen oder fettgedruckten Text gab, würde das Ausgeben einer Unterstreichung, das Zurücksetzen und das Drucken von etwas anderem dazu führen, dass etwas anderes unterstrichen erscheint. Die Ausgabe eines Zeichens, das Zurücksetzen und das Ausgeben desselben Zeichens lassen das Zeichen dunkler erscheinen, obwohl die Wirksamkeit davon abhängt, wie gut das installierte Farbband ist (wenn das Farbband alt und schwach ist, geben Sie dasselbe Zeichen zweimal ein) würde es deutlich dunkler machen; mit einem neuen Farbband würde das Zeichen auch nur einmal fast die maximale Schwärze erreichen). Selbst wenn ein Benutzer nicht an einen Drucker angeschlossen war,
man
zu einem Druck-Spooler wäre ziemlich verbreitet gewesen, was wahrscheinlich erklärt, warumman
sich das so verhalten würde, selbst wenn die Ausgabe umgeleitet wurde.Übrigens wäre bei einigen Druckern (und sogar bei Ferndruckern) die Leistung von
_←U_←N_←D_←E_←R_←L_←I_←N_←I_←N_←G
merklich schlechter als___________←←←←←←←←←←←UNDERLINING
, da bei ersteren der Druckkopf die Richtung wiederholt umkehren muss (und normalerweise sein Ziel an beiden Enden überschreitet). Das Gleiche gilt für die Verwendung von Fettdruck mit mehreren Anschlägen. Dort kann das Verhalten jedoch von Vorteil sein, da beim ersten Ausdruck jedes Zeichen unmittelbar auf ein Backspace-Zeichen folgt und das zweite nicht. Wenn der Druckkopf beim Drucken des ersten Zeichens beschleunigt würde, würde dies zu einer geringfügigen Fehlausrichtung des ersten Zeichens gegenüber dem zweiten führen, was den Fettdruckeffekt effektiver macht.quelle
Die Antwort von Mateusz ist richtig, aber es ist erwähnenswert, dass Sie die Formatierung für ein Tty nicht streichen, sondern das Format von man anders festlegen können.
Beispielsweise können Sie stattdessen ein schön formatiertes PDF erhalten mit:
quelle
gzip -dc $(man -w ls) | groff -Thtml -mandoc -c > /tmp/man-ls.html
-t
Formate mitgroff -Tps ...
und von Strings unter / usr / bin / man hartcodiert zu sein scheinen. Und da-Tps
GROFF_TYPESETTER überschrieben wird, ist Ihre Lösung möglicherweise die rentabelste. Es fehlt Ihnen jedoch ein Schritt in Ihrer Pipeline. Sie wollen tbl dann groff. Versuchen Sieman -d ls
, die verwendete Pipeline anzuzeigen.Als Alternative habe ich die folgende Shell-Funktion definiert (wird vom Oh-my-ZSH OS X-Plugin aufgerufen ):
Dies führt dazu, dass die gewünschte Manpage in der Vorschau mit allen hübschen Formatierungen geöffnet wird, die man sich nur wünschen kann. Es ist einfach genug, diesen einzelnen Alias zu Ihrem hinzuzufügen
~/.profile
(ich denke, espman
ist einfacher alsman-preview
, also habe ichalias pman='man-preview
in meinem festgelegt~/.zshrc
).PS Ich habe die
pman
in verschiedenen Punktedateien definierte Funktion im Internet gesehen. Oh-my-ZSH befindet sich zufällig dort, wo meine definiert ist.quelle
Sie können auch ManOpen von Carl Lindberg verwenden, um nach Manpages zu suchen und diese auszudrucken. ManOpen wurde zuerst für NeXtStep entwickelt und funktioniert dank Carl immer noch.
quelle