我想替换一个字符串,保留前缀,除非它包含特定的前缀。
例如,任何类似的字符串都"(*)-bar"
必须替换为"(*)-blah"
except when "(*)"
matches "baz"
:
foo-bar => should return foo-blah
baz-bar => should remain baz-bar
到目前为止,我最好的方法是在替换时修剪前缀的最后一个字母:
echo "foo-bar" | sed s/"[^(baz)]-bar"/$1-blah/