{}
を用いてアドレスを入れ子にして、「絞り込みをさらに絞り込む」ことができる。これは、{}
内にコマンドをいくつも入れてグループ化することにもなる。
アドレス {
アドレス コマンド
アドレス コマンド
}
# 「いちごケーキ」を「ショートケーキ」に変更したいが「きいちごケーキ」はそのままにしたい例
input='1行目 いちごジュース
2行目 いちごケーキ
3行目 きいちごケーキ
4行目 いちごパフェ'
script='
/きいちご/ ! {
/ジュース/ s/いちご/ストロベリー/
/ケーキ/ s/いちご/ショート/
}'
echo "$input" | sed "$script"
上記は/きいちご/
というアドレスにマッチしないものだけ、{}
内のスクリプトを適用している。出力はこうなる。
1行目 ストロベリージュース 2行目 ショートケーキ 3行目 きいちごケーキ 4行目 いちごパフェ