Я прошу решение awk, потому что решение sed sed ':a;N;$!ba;s/\n/ /g'
НЕ получает последний символ новой строки, обычно присутствующий в файлах. Моя проблема заключается в том, что если у меня есть поток данных, каждый символ новой строки, ВКЛЮЧАЯ тот, который обычно присутствует в конце выходов, генерируемых такими программами, как echo
, должен быть заменен на \n
(raw). tr
не работает, потому что он не может заменить строки (которые \\n
есть), только отдельные символы.Как заменить новые строки своей escape-последовательностью с помощью awk?
В качестве примера, на трубопроводе:
echo -e "This is\na test."
к AWK, я должен получить:
This is\na test.\n
взамен.
'sed ': a; N; $! Ba; s/\ n/\\ n/g; $ s/$/\\ n /'' –
sed - это простые подстановки на отдельных линиях, то есть все , Каждый раз, когда вы пытаетесь использовать команды sed, отличные от s, g и/или p (с -n), вы используете конструкции, которые стали устаревшими в середине 1970-х годов, когда был изобретен awk. –