\ 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.

GSto
quelle
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'
Bis auf weiteres angehalten.
quelle
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.
0
tail -1 file | awk '{gsub(/\\n/,"")}1'
user37841
quelle