Похоже, вы должны сделать [^\"]*
вместо\*
:
sed -i "s/<FOLDER NAME=\"[\"]*\"/<FOLDER NAME=\"$FLDR\"/g" Gather.XML
Поскольку вы хотите сопоставить весь текст до первого "
. \*
будет соответствовать буквальному символу *
, но у вас его нет, поэтому содержимое файла никогда не совпадает.
$ echo '"Foo"BA_R' | sed 's,.*",,'
BA_R
$ echo '"Foo"BAR' | sed 's,.*",,'
BAR
Это также хороший джаб дляcut
:
$ echo '"Foo"BA_R' | cut -d'"' -f3
BA_R
$ echo '"Foo"BAR' | cut -d'"' -f3
BAR