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?


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

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 .


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.