Замените все символы новой строки на пространство, за исключением последнего

Как я могу заменить все новые строки пробелом, кроме последней строки новой строки. Я могу заменить всю новую строку на космос, используя tr но как я могу это сделать с некоторыми исключениями?

Вы можете использовать paste -s -d ' ' file.txt :

 $ cat file.txt one line another line third line fourth line $ paste -s -d ' ' file.txt one line another line third line fourth line 

Вы можете использовать tr для замены всех новых строк в пространстве и передать результат sed и заменить последнее пространство на новую строку:

 tr '\n' ' ' < afile.txt | sed '$s/ $/\n/' 

Повторная реализация идеи vonbrand в Perl, если файл достаточно мал:

 perl -p00e 's/\n(?!\Z)/ /g' your_file 

Что-то вроде sed -e 's;\n\(.\); \1;' sed -e 's;\n\(.\); \1;' следует сделать…

Это сработало для меня.

 tr '\n' ' ' < file_with_new_line | sed 's/\ $//g' > file_with_space