Это может работать для вас:
sed '/^EXTRATHING {/,/^};/c\SOMETHING{}' input_file.txt >output_file.txt
или если вы хотите отредактировать оригинальный файл:
sed -i '/^EXTRATHING {/,/^};/c\SOMETHING{}' input_file
РЕДАКТИРОВАТЬ: как требуется, вот пример:
cat <<! | sed '/^EXTRATHING {/,/^};/c\SOMETHING{}'
> aaa
> EXTRATHING {
> };
> bbb
> EXTRATHING {
> };
> ccc
> !
aaa
SOMETHING{}
bbb
SOMETHING{}
ccc
РЕДАКТИРОВАТЬ: Если первый и последний адреса являются последовательными строками, используйте это:
# cat <<\! | sed '/^EXTRATHING {/{N;s/^EXTRATHING {\n};/SOMETHING{}/}'
> aaa
> EXTRATHING {
> bbb
> };
> ccc
> EXTRATHING {
> };
> ddd
> !
aaa
EXTRATHING {
bbb
};
ccc
SOMETHING{}
ddd
Другой способ (возможно, проще?):
echo -e "EXTRATHING {\n};" | sed '$!N;s/^EXTRATHING {\n};/SOMETHING {};/;P;D'
SOMETHING {};