При тестировании по этой строке:
“… so that’s that… ”
Следующее должно, но не совпадать с открывающей кавычкой и после многоточия и пробела:
sed "s/\([“‘\"']…\) /\1/g"
Однако это правильно соответствует второму многоточию и следующему пробелу и закрывающей кавычке:
sed "s/… \([”’\"'.!?]\)/…\1/g"
Если я разделю первый на части, он будет работать нормально:
sed -e "s/\(“…\) /\1/g" \
-e "s/\(‘…\) /\1/g" \
-e "s/\(\"…\) /\1/g" \
-e "s/\('…\) /\1/g"
Так почему же он не работает, когда он сгруппирован вместе? Особенно, когда он отлично работает с закрывающими кавычками.