Показувати \ n символів як нові рядки при використанні хвоста?


17

У мене є файл, який я намагаюся прочитати за допомогою хвоста -f. Мені було цікаво, чи існує спосіб, щоб термінал вивів фактичний розрив рядка замість символу \ n.


1
Як правило, хвіст -f відображатиме розриви рядків у вигляді розривів рядків. У вас можуть виникнути проблеми з налаштуваннями консолі, якщо це те, що ви бачите.
Джон Лассер

1
Або він записує файл, який насправді має \ n прямолінійний \ n. Можливо, перерви рядків були перетворені в буквальний "\ n", перш ніж записати у файл.
Джош

Відповіді:


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

2
Я хотів би додати, що я виявив, що мені потрібно фізично ввести перерву рядка в команді sed після зворотної косої риси, щоб зробити цю роботу так:~$ tail -f /var/log/apache2/error_log | sed 's/\\n/\ > /g'
Jon z

Хтось знає про спосіб досягти того ж за багатоповерхівку? Ось питання: unix.stackexchange.com/questions/239774/…
fraxture

Я не можу змусити це працювати псевдонімом у своєму .bashrc
Кданський

1
@Kdansky: Ви не показали, як ви визначили псевдонім або яку проблему у вас виникли, тому я можу лише здогадуватися. Одна з проблем, яка може виникнути у вас, - це цитування. Додатковий зворотний слеш може допомогти: alias forward="tail -f file | sed 's/\\\n/\n/g'". Якщо ви хочете мати можливість вказати ім'я файлу як аргумент, вам слід використовувати функцію замість псевдоніму:forward () { tail -f "$@" | sed 's/\\n/\n/g'; }
Призупинено до подальшого повідомлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.