работают следующие работы:
$ echo ddayaynightday | sed ':loop;/day/{s///g;b loop}'
night
В зависимости от вашей системы, ;
может не работать для разделения команд, поэтому вы можете использовать следующее:
echo ddayaynightday | sed -e ':loop' -e '/day/{s///g
b loop}'
Пояснение:
:loop # Create the label 'loop'
/day/{ # if the pattern space matches 'day'
s///g # remove all occurrence of 'day' from the pattern space
b loop # go back to the label 'loop'
}
Если часть команды b loop
не выполнена, печатается текущее содержимое пространства шаблона и читается следующая строка.