Exibir \ n caracteres como novas linhas ao usar cauda?

17

Eu tenho um arquivo que estou tentando ler usando tail -f. Eu queria saber se havia uma maneira de fazer com que o terminal produza uma quebra de linha real em vez do caractere \ n.

GSto
fonte
1
Como regra, tail -f exibirá quebras de linha como quebras de linha. Você pode ter um problema com as configurações do console, se é isso que está vendo.
precisa
1
Ou ele está seguindo um arquivo que realmente tem um \ n literal. Talvez as quebras de linha tenham sido convertidas em um "\ n" literal antes de serem gravadas em um arquivo.
Josh

Respostas:

25
tail -f file | sed 's/\\n/\n/g'
Pausado até novo aviso.
fonte
2
Gostaria de acrescentar que eu descobri que eu precisava para realmente entrar fisicamente uma quebra de linha no meu comando sed após o back-corte, a fim de fazer este trabalho, assim:~$ tail -f /var/log/apache2/error_log | sed 's/\\n/\ > /g'
Jon z
Alguém sabe como conseguir a mesma coisa para multitail? Aqui está uma pergunta: unix.stackexchange.com/questions/239774/…
fraxture 30/10/2015
Eu não posso chegar a esse trabalho como um alias no meu .bashrc
Kdansky
1
@ Kdansky: Você não mostrou como definiu o alias ou que tipo de problema está enfrentando, para que eu possa adivinhar. Um problema que você pode estar enfrentando é citar. Uma barra extra pode ajudar: alias forward="tail -f file | sed 's/\\\n/\n/g'". Se você deseja especificar o nome do arquivo como argumento, use uma função em vez de um alias:forward () { tail -f "$@" | sed 's/\\n/\n/g'; }
Pausado até novo aviso.
0
tail -1 file | awk '{gsub(/\\n/,"")}1'
user37841
fonte