Как я могу заменить все символы новой строки пробелом, кроме последней строки? Я могу заменить все символы новой строки на пробел, tr
но как я могу сделать это с некоторыми исключениями?
bash
shell-script
text-processing
tr
Жиль "ТАК - прекрати быть злым"
источник
источник
-s
И-d
варианты , кажется , как для этого случая.Вы можете использовать,
tr
чтобы заменить все новые строки пробелом и передать выводsed
и заменить последний пробел обратно новой строкой:источник
Реализовать идею vonbrand в Perl, при условии, что файл достаточно мал:
источник
Нечто подобное
sed -e 's;\n\(.\); \1;'
должно делать ...источник
Это сработало для меня.
источник
tr
команда заменяет все символы новой строки пробелами, а вашаsed
команда удаляет последний пробел. Это приводит к файлу без заключительного перевода строки, и поэтому это не то, о чем спрашивает вопрос. Кстати, нет смысла использовать intg
вsed
команде. Поскольку вы используете$
, он может совпадать только в конце,g
бессмысленно. Вам также не нужно выходить из пространства, `` тоже не имеет значения.