Я столкнулся с той же самой потребностью (следовательно, нашел этот вопрос).Поработав с sed и awk слишком долго, я в конце концов понял, что нет ничего плохого в использовании современного, читаемого, понятного и широко доступного языка, такого как Python:
python <<EOF
import os, sys, re
fname = 'server.xml'
os.rename(fname, fname + '.orig')
with open(fname + '.orig', 'r') as fin, open(fname, 'w') as fout:
data = fin.read()
data = re.sub(r'(<!-- BEGIN realm -->).*?(<!-- END realm -->)',
r'\1\n' +
'insert whatever you want here\n' +
r'\2\n', data, flags=re.DOTALL)
fout.write(data)
EOF
Я думаю, что sed и awk имели своидень.Они были полезны когда-то, но очень немногие люди могут читать или писать без документальной помощи в эти дни.
(Источник: Интернет)