Показывать символы \ n как символы новой строки при использовании tail?


17

У меня есть файл, который я пытаюсь прочитать, используя tail -f. Мне было интересно, есть ли способ, чтобы терминал выводил фактический разрыв строки вместо символа \ n.


1
Как правило, tail -f будет отображать разрывы строк как разрывы строк. У вас могут быть проблемы с настройками консоли, если вы видите это.
Джон Лассер

1
Или он следит за файлом, в котором на самом деле есть литерал \ 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/…
фракция

Я не могу заставить это работать как псевдоним в моем .bashrc
Kdansky

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.