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

17

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

GSto
источник
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'; }
Пауза до дальнейшего уведомления.