Как я могу заменить все символы новой строки пробелом, кроме последней строки? Я могу заменить все символы новой строки на пробел, tr
но как я могу сделать это с некоторыми исключениями?
Как я могу заменить все символы новой строки пробелом, кроме последней строки? Я могу заменить все символы новой строки на пробел, tr
но как я могу сделать это с некоторыми исключениями?
Ответы:
Реализовать идею vonbrand в Perl, при условии, что файл достаточно мал:
perl -p00e 's/\n(?!\Z)/ /g' your_file
Это сработало для меня.
tr '\n' ' ' < file_with_new_line | sed 's/\ $//g' > file_with_space
tr
команда заменяет все символы новой строки пробелами, а ваша sed
команда удаляет последний пробел. Это приводит к файлу без заключительного перевода строки, и поэтому это не то, о чем спрашивает вопрос. Кстати, нет смысла использовать int g
в sed
команде. Поскольку вы используете $
, он может совпадать только в конце, g
бессмысленно. Вам также не нужно выходить из пространства, `` тоже не имеет значения.
-s
И-d
варианты , кажется , как для этого случая.