Ich benutze oft den less
Pager, um Logfiles anzusehen. Normalerweise benutze ich less -F
, um den Fortschritt des Protokolls à la zu verfolgen tail
.
Einige Protokolldateien verwenden jedoch nationale Zeichen in einer nicht standardmäßigen Codierung (Latin-1, während das System UTF-8 verwendet). Offensichtlich werden diese nicht korrekt angezeigt.
Wie kann ich solche Dateien mit anzeigen less
?
Die einzigen Lösungen, die ich gefunden habe:
- Korrigieren Sie die Kodierung der Datei (
recode
odericonv
). Dies funktioniert nicht, solange die Datei noch geschrieben wird. Ich kann sie daher nicht verwendenless -F
. Außerdem werden die ursprünglichen Zeitstempel der Protokolldateien zerstört, was aus Sicht der Überwachung schlecht ist. - Benutze eine Pfeife (
recode latin1... |less
). Funktioniert für laufende Dateien,less -F
scheint aber dann leider nicht zu funktionieren (es wird nur nicht aktualisiert; ich glaube, derrecode
Prozess wird beendet, sobald er abgeschlossen ist).
Gibt es eine Lösung, mit der ich eine Protokolldatei "abfangen" und trotzdem die nationalen Zeichen korrekt anzeigen kann?
less
unterstützt das Aufrufen eines Präprozessors. Soweit ich das beurteilen kann, liest der Präprozessor die Eingabedatei und erstellt eine neue Datei für less
, sodass dies nicht funktionieren würde less -F
.
man less
als gäbe es einen Präprozessor, den Sie möglicherweise einstellen könnten, um Ihre Kodierung zu korrigieren.