\ N Zeichen als Zeilenumbrüche anzeigen, wenn Sie tail verwenden?


16

Ich habe eine Datei, die ich mit tail -f zu lesen versuche. Ich habe mich gefragt, ob es eine Möglichkeit gibt, das Terminal anstelle des Zeichens \ n einen tatsächlichen Zeilenumbruch ausgeben zu lassen.


1
In der Regel zeigt tail -f Zeilenumbrüche als Zeilenumbrüche an. Möglicherweise haben Sie ein Problem mit Ihren Konsoleneinstellungen, wenn Sie dies sehen.
Jon Lasser

1
Oder er verfolgt eine Datei, die tatsächlich ein \ n Literal enthält. Möglicherweise wurden Zeilenumbrüche in ein Literal "\ n" konvertiert, bevor sie in eine Datei geschrieben wurden.
Josh

Antworten:


25
tail -f file | sed 's/\\n/\n/g'

1
Ich mag hinzufügen , dass ich gefunden ich brauchte , um tatsächlich physisch einen Zeilenumbruch in meinem sed Befehl nach dem Backslash eingeben , um diese Arbeit zu machen, etwa so:~$ tail -f /var/log/apache2/error_log | sed 's/\\n/\ > /g'
Jon z

Kennt jemand einen Weg, um dasselbe für Multitail zu erreichen? Hier ist eine Frage: unix.stackexchange.com/questions/239774/…
fraxture

Ich kann das nicht als Alias ​​in meinem .bashrc
Kdansky

1
@Kdansky: Sie haben nicht gezeigt, wie Sie den Alias ​​definiert haben oder welche Art von Problem Sie haben, daher kann ich nur raten. Ein Problem, das Sie möglicherweise haben, ist das Zitieren. Ein zusätzlicher Backslash kann helfen: alias forward="tail -f file | sed 's/\\\n/\n/g'". Wenn Sie den Dateinamen als Argument angeben möchten, sollten Sie anstelle eines Alias ​​eine Funktion verwenden:forward () { tail -f "$@" | sed 's/\\n/\n/g'; }
Bis auf weiteres angehalten.

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.