• 1000
Я пытаюсь написать небольшой bash скрипт, который заменит атрибуты для 'thing- c' предопределенным блоком. $ A1, $ a2 и $ a3 генерируются где-нибудь в более широком сценарии:
NEW_BLOCK="[thing-c]
attribute1=${a1}
attribute2=${a2}
attribute3=${a3}"
Я могу найти нужный блок с помощью sed вот так:
THING_BLOCK=$(sed -nr "/^\[thing-c\]/ { :l /^\s*[^#].*/ p; n; /^\[/ q; b l; }" ./myThingFile)
Я не уверен, что я спустился в кроличью нору или что с этим, и я ' Я почти уверен, что есть лучший способ сделать это.
Я хочу сделать то, что есть:
sed "s/${THING_BLOCK}/${NEW_BLOCK}/"
Но я не могу понять многострочный аспект этого и Я не уверен, какой путь лучше всего выбрать.
Есть ли способ выполнить такой многострочный поиск и замену с помощью sed (или лучше с помощью bash)