Tampilkan \ n karakter sebagai baris baru saat menggunakan ekor?

17

Saya punya file yang saya coba baca dengan menggunakan tail -f. Saya bertanya-tanya apakah ada cara untuk memiliki terminal output jeda baris sebenarnya daripada karakter \ n.

GSto
sumber
1
Sebagai aturan, tail -f akan menampilkan jeda baris sebagai jeda baris. Anda mungkin memiliki masalah dengan pengaturan konsol Anda, jika itu yang Anda lihat.
Jon Lasser
1
Atau dia mengekor file yang sebenarnya memiliki literal \ n di dalamnya. Mungkin jeda baris dikonversi menjadi "\ n" literal sebelum ditulis ke file.
Josh

Jawaban:

25
tail -f file | sed 's/\\n/\n/g'
Dijeda sampai pemberitahuan lebih lanjut.
sumber
2
Saya ingin menambahkan bahwa saya perlu benar-benar secara fisik memasukkan jeda baris dalam perintah sed saya setelah back-slash untuk membuat pekerjaan ini, seperti:~$ tail -f /var/log/apache2/error_log | sed 's/\\n/\ > /g'
Jon z
Adakah yang tahu cara mencapai hal yang sama untuk multitail? Inilah pertanyaan: unix.stackexchange.com/questions/239774/…
lampiran
Saya tidak bisa
membuatnya
1
@Kdansky: Anda tidak menunjukkan bagaimana Anda mendefinisikan alias atau masalah apa yang Anda alami sehingga saya hanya bisa menebak. Satu masalah yang mungkin Anda alami adalah dengan mengutip. Sebuah garis miring terbalik ekstra dapat membantu: alias forward="tail -f file | sed 's/\\\n/\n/g'". Jika Anda ingin dapat menentukan nama file sebagai argumen, Anda harus menggunakan fungsi alih-alih alias:forward () { tail -f "$@" | sed 's/\\n/\n/g'; }
Dijeda hingga pemberitahuan lebih lanjut.
0
tail -1 file | awk '{gsub(/\\n/,"")}1'
pengguna37841
sumber