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.

GSto
źródło
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'
Wstrzymano do odwołania.
źródło
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.
0
tail -1 file | awk '{gsub(/\\n/,"")}1'
użytkownik37841
źródło