Проблема: нам нужно через sed заменить символы перевода строки какими-то другими символами (например, пробелами). Но что делать - sed не воспринимает запись escape-последовательности вида \n и не хочет с нами дружить.
Да, в мануале к sed так и написано - оно не будет работать с \n в своих выражениях. Но есть обходной путь - использовать конструкцию tr:
echo -en "This\nis\nmultiline\nstring" | tr '\n' '_'
This_is_multiline_string
Как видим, tr успешно заменил символ перевода строки \n на знаки подчеркивания, с которыми уже сумеет справиться sed.
Возможна и обратная ситуация - когда какие-то символы нужно заменить на перевод строки. Вот пример:
echo "filename1 filename2 filename3" | tr ' ' '\n'
filename1
filename2
filename3
В данном примере tr заменит все пробелы на переводы строк.
Комментарии
Оставить комментарий
Операционная система LINUX
Термины: Операционная система LINUX