Проблемы со сценарием sed, использующим блок фигурных скобок с доморощенным gnu sed
У меня проблемы со старым сценарием sed, который я выкопал из архивов, которые хорошо работали много лет назад, но сейчас нет.
Старый сценарий был сложным, с множественными заменами между фигурными скобками, но даже на самом деле он был просто сдвинут к одной замене, я не могу заставить его работать сейчас.
Я пытаюсь использовать его с домашним пивом gnu-sed в Mac OS X 10.11 El Capitan, но у меня возникли те же проблемы с Debian, так что это похоже на проблему, специфичную для gnu sed. Он работает с обычной OS X /usr/bin/sed, но не с gnu sed, которую я предпочел бы использовать для переносимости.
Нужны ли gnu sed разные флаги, чтобы разрешить использование фигурных скобок или что-то еще в этом направлении? во всех случаях ниже команда sed ссылается на /usr/local/bin/gsed на компьютере с OS X. Я полагаю, что я мог бы просто использовать OS X sed, но это не помогло бы мне на Linux, если мне нужно использовать сценарий там.
Благодарю.
Я получаю ошибку
sed: file script_file line 3: extra characters after command
Вот мой простой двухстрочный файл данных.
[[aaaaaaaaaaaaaaaa]]
aaaaaaaaaaaaaaaaaa
Вот правильный вывод, если сценарий успешно выполнен.
[[bbbbbbbbbbbbbbbb]]
aaaaaaaaaaaaaaaaaa
Вот сценарий sed, который не работает при сохранении в файле.
/\[\[.*\]\]/{
s/a/b/g
}
Вот команда, которую я использую для запуска.
sed -f script_file data_file
Если я уберу фигурные скобки в файле, он будет работать, но тогда я не смогу применить несколько подстановок к одному и тому же пространству шаблона. Вот версия файла скрипта, которая работает без проблем.
/\[\[.*\]\]/s/a/b/g
если я помещу все в командную строку, включая фигурные скобки, это также работает.
sed '/\[\[.*\]\]/{s/a/b/g}' data_file
Этот также работает с данными стандартного ввода.
Что мне нужно сделать, чтобы версия сценария с многострочными фигурными скобками для правильной работы с gnu sed?