Weniger erzwingen, um eine Datei als Text anzuzeigen

14

Manchmal wird die Datei weniger fälschlicherweise als binär erkannt und versucht, Hexdump auf LHS anzuzeigen (normalerweise mit nicht alphanumerischen Zeichen, die jedoch druckbare ASCII-Zeichen enthalten). Wie kann man es zwingen, es als Text zu erkennen?

Maciej Piechotka
quelle
Suche nach einer anderen Antwort. Ich habe eine Protokolldatei, cat somefiledie als ASCII less somefileangezeigt wird , aber möglicherweise binär ist und als solche angezeigt wird. echo $LESSOPENist leer und less -Lhilft nicht.
Nathan Long
2
@ NathanLong Dies wäre wahrscheinlich akzeptabel, um eine neue Frage zu öffnen, da die Lösung hier Ihr Problem nicht löst (stellen Sie nur sicher, dass Sie dies beachten). Wenn Sie jedoch "binär sein und als solche anzeigen" sagen, wird dann eine hexadezimale Darstellung der Daten angezeigt, oder werden die unformatierten Binärdaten (wie alle seltsamen Symbole und dergleichen) angezeigt?
Patrick
Was ist LHS? Es ist neu für mich.
DFC
1
@dfc linke Seite .
Maciej Piechotka

Antworten:

19

Ich denke, Sie haben (oder Ihre Distribution hat) einen LESSOPENFilter eingerichtet für less. Versuchen Sie Folgendes, um sicherzustellen less, dass der Filter nicht verwendet wird:

less -L my_binary_file

Versuchen Sie es auch für weitere Erkundungen echo $LESSOPEN. Es enthält wahrscheinlich den Namen eines Shell-Skripts ( /usr/bin/lesspipefür mich), das Sie durchlesen können, um zu sehen, welche Art von Filtern es gibt. Versuchen Sie auch man less, den Abschnitt Input Preprocessor zu lesen .

Jander
quelle
4

Für den Fall, LESSOPENnicht das Problem zu sein. Die folgenden lessOptionen können ausprobiert werden:

  1. -foder --force: Neben dem Öffnen nicht regulärer Dateien wird "auch die Warnmeldung beim Öffnen einer Binärdatei unterdrückt".
  2. -roder --raw-control-chars: "Bewirkt, dass unformatierte Steuerzeichen angezeigt werden. Standardmäßig werden Steuerzeichen in der Caret-Notation angezeigt ^A. Ein Steuerelement-A (oktal 001) wird beispielsweise als angezeigt . Warnung: Wenn die -rOption verwendet wird, kann less nicht den Überblick behalten (Da dies davon abhängt, wie der Bildschirm auf die einzelnen Steuerzeichentypen reagiert) Daher können verschiedene Anzeigeprobleme auftreten, z.
  3. -Roder --RAW-CONTROL-CHARS: Schwächere Form von -roben, nur ANSI "color" Escape-Sequenzen werden in "raw" -Form ausgegeben. "Im Gegensatz zu -r wird die Bildschirmdarstellung in den meisten Fällen korrekt beibehalten." Dies ist nützlich, wenn Sie beispielsweise eine Protokolldatei anzeigen, die ANSI-Farbsteuerungssequenzen verwendet.

Sie können experimentieren, indem Sie die Tasten drücken, -gefolgt von, rohne es erneut auszuführen less. Sie können diese Optionen zur LESSUmgebungsvariablen hinzufügen , um die Einstellung dauerhaft zu machen (z. B. durch Ändern Ihrer Shell-Profildatei). Wenn Ihr Terminal Farben anzeigen kann, empfehle ich dringend, diese -Rin Ihre LESSEinstellung aufzunehmen. Sie sollten sicherstellen, dass Ihr Terminal so konfiguriert ist, dass dieselbe Zeichenkodierung wie Ihre Textdatei verwendet wird.

FooF
quelle