Если вы хотите использовать sed , вы можете сделать то же самое (обрезать линии) и объединить эти строки, как указано выше, с помощью этих двух команд:
sed -i -e '/^ */s///' -e '/ *$/s///' file.xml # remove leading blanks and trailing blanks
sed -i -e :a -e '$!N; s/\n/ /; ta' file.xml # remove carriage return
Как видите, Я помещаю пробел между двумя строками, которые я конкатенирую, для случая, когда у вас есть текстовый узел на нескольких строках, чтобы избежать того, что последнее слово в строке будет объединено с первым словом на следующей строке. Чтобы удалить символы новой строки без вставки пробела, измените команду второго sed с s/\n/ /
на s/\n//
.