特定のプレフィックスが含まれている場合を除いて、プレフィックスを保持したまま文字列を置き換えたい。
たとえば、次のような文字列は、一致する場合を除いて、"(*)-bar"
に置き換える必要があります。"(*)-blah"
"(*)"
"baz"
foo-bar => should return foo-blah
baz-bar => should remain baz-bar
私がこれまでに持っている最高のものは、置き換えるときにプレフィックスの最後の文字をトリミングします:
echo "foo-bar" | sed s/"[^(baz)]-bar"/$1-blah/