.*
является жадным и соответствует всему, начиная с первых данных после «простого» и заканчивая последней парой закрывающих фигурных скобок, включая другие автоопределения и т. Д. Вам нужен более тонкий (менее жадный) шаблон:
sed 's/|AUTODETECT|"}{\\fldrslt \\plain [^}]*}}/ /g' "$@"
Часть '[^}]*
' соответствует произвольной последовательности чего угодно, кроме '}' (и новой строки).
Если сценарий должен находиться в файле, тогдаФайл сценария sed содержит:
s/|AUTODETECT|"}{\\fldrslt \\plain [^}]*}}/ /g
, и вызов становится следующим:
sed -f sed.script "$@"
В основном все, кроме одинарных кавычек, попадает в файл сценария.Одним из преимуществ использования одинарных кавычек является то, что с побегами меньше беспокоиться.Проблемы возникают только тогда, когда скрипт должен содержать одинарные кавычки.