Как заменить с помощью sed удалить переход на новую строку в между тегами?
Например на входе:
module
0008
0009
000A
000B
000C
000D
000E
000F
module
000C
000D
000E
000F
на выходе:
module 0008 0009 000A 000B 000C 000D 000E 000F
module 000C 000D 000E 000F
Пробовал вот так:
sed -e "/module/,/^$/ {:a;N;$!ba; s/\n/ /}"
но результат такой:
module 0008
0009 000A
000B 000C
000D 000E
000F
module 000C
000D 000E
000F
Ответы (1 шт):
Автор решения: Vadik Sirekanyan
→ Ссылка
- Замените двойные кавычки на одинарные
- Заменяйте
"\n "на" " - Добавьте опцию
g
Тогда ваш вариант будет работать.
К примеру, такой вариант:
sed ':a;N;$!ba;s/\n / /g' input.txt
Даст такой результат:
module 0008 0009 000A 000B 000C 000D 000E 000F
module 000C 000D 000E 000F
Похожий вопрос на английском: How can I replace each newline (\n) with a space using sed?