Задать вопрос
@DVoropaev
Ставлю + к карме на хабре за ответы на вопросы

Как с помощью sed перед первой строкой, соответствующей шаблону подставить другую строку?

Есть файлы со строками
Мне нужно перед первой строкой, начианющейся на XXX вставить ZZZ
как сделать это с помощью sed (GNU sed) 4.9.0.32.5420

Пример.
Было:
AAA
BBB
CCC
XXX
AAA
XXX
XXX

Стало:
AAA
BBB
CCC
DDD
ZZZ
XXX
AAA
XXX
XXX


У меня есть команда. которая вставляет ZZZ перед каждым XXX
sed '/^XXX/i ZZZ' tes.txt

Можно как-то добавить ей такой диапазон?
1,/^XXX/
  • Вопрос задан
  • 75 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
sed '0,/^XXX/{s/^XXX/ZZZ\nXXX/}' tes.txt
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
echo 'AAA
BBB
CCC
XXX
AAA
XXX
XXX' | sed '0,/XXX/ {/XXX/iZZZ
}'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы