Mostra \ n caratteri come newline quando usi la coda?


17

Ho un file che sto cercando di leggere usando tail -f. Mi chiedevo se c'era un modo per far sì che il terminale emettesse un'interruzione di riga effettiva anziché il carattere \ n.


1
Di norma, tail -f mostrerà le interruzioni di riga come interruzioni di riga. Potresti avere un problema con le impostazioni della tua console, se è quello che stai vedendo.
Jon Lasser,

1
O sta seguendo un file che contiene effettivamente un letterale \ n. Forse le interruzioni di riga sono state convertite in un letterale "\ n" prima di essere scritte in un file.
Josh,

Risposte:


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

2
Vorrei aggiungere che ho scoperto che avevo bisogno di inserire fisicamente un'interruzione di riga nel mio comando sed dopo il back-slash per farlo funzionare, in questo modo:~$ tail -f /var/log/apache2/error_log | sed 's/\\n/\ > /g'
Jon z

Qualcuno sa come ottenere la stessa cosa per il multitail? Ecco una domanda: unix.stackexchange.com/questions/239774/…
fraxture

Non riesco a farlo funzionare come alias nel mio .bashrc
Kdansky

1
@Kdansky: Non hai mostrato come hai definito l'alias o che tipo di problema stai riscontrando, quindi posso solo immaginare. Un problema che potresti avere è con il preventivo. Una barra rovesciata aggiuntiva può aiutare: alias forward="tail -f file | sed 's/\\\n/\n/g'". Se si desidera poter specificare il nome file come argomento, è necessario utilizzare una funzione anziché un alias:forward () { tail -f "$@" | sed 's/\\n/\n/g'; }
In pausa fino a ulteriore avviso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.