LINUX.ORG.RU
более подробное описание задачи: есть файл в котором некоторые строки помечены специальными тегами надо каждую строку с тегами добавлять в начало всех следующих за ней строк если они не содержат тегов. если содержат то далее подставляем последнюю строку с тегами
cvv ★★★★★
() автор топика
Ответ на: комментарий от kosmonavt
Вот что-то получилось. 

echo -e 'aaa000\nbbb\nccc' |
sed -ne '/aaa/b a
s/^.*$/&---/  #клеим маркер `---' в конец
G   #объединяем строку с доп. буфером
# убираем '\n' в середине
s/\
//
# перестановка
s/^\(.*\)---\(.*\)$/\1\2/
p
b #следующая строка
:a #в доп. буфер и печать стр. с тегом
h
p'
kosmonavt
()
Ответ на: комментарий от cvv
>с awk красивее

Согласен, но можно упростить - '\n' в середине использовать как маркер

sed -ne '/aaa/b a
G
s/^\(.*\)\
\(.*\)$/\2\1/
p
b
:a
h
p'
kosmonavt
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.