Czy wyświetlać \ n znaków jako znaki nowej linii podczas używania ogona?


17

Mam plik, który próbuję odczytać za pomocą tail -f. Zastanawiałem się, czy istnieje sposób, aby terminal wyświetlał rzeczywisty podział wiersza zamiast znaku \ n.


1
Z reguły tail -f wyświetla podział linii jako podział linii. Być może masz problem z ustawieniami konsoli, jeśli to właśnie widzisz.
Jon Lasser

1
Lub modyfikuje plik, który faktycznie zawiera literał \ n. Być może podziały wiersza zostały przekonwertowane na dosłowne „\ n” przed zapisaniem do pliku.
Josh

Odpowiedzi:


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

2
Chciałbym dodać, że stwierdziłem, że muszę fizycznie wprowadzić podział wiersza w moim poleceniu sed po odwróceniu, aby to zadziałało, tak:~$ tail -f /var/log/apache2/error_log | sed 's/\\n/\ > /g'
Jon z

Czy ktoś wie, jak osiągnąć to samo w przypadku obsługi wielu pociągów? Oto pytanie: unix.stackexchange.com/questions/239774/…
fraxture

Nie mogę zmusić go do działania jako alias w moim .bashrc
Kdansky

1
@Kdansky: Nie pokazałeś, jak zdefiniowałeś alias ani jaki masz problem, więc mogę tylko zgadywać. Jednym z problemów może być cytowanie. Dodatkowy ukośnik może pomóc: alias forward="tail -f file | sed 's/\\\n/\n/g'". Jeśli chcesz móc podać nazwę pliku jako argument, powinieneś użyć funkcji zamiast aliasu:forward () { tail -f "$@" | sed 's/\\n/\n/g'; }
Wstrzymano do odwołania.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.