Это может работать для вас (GNU sed):
sed -z 's/\(.*\)}/\1content}/' file
Забросить файл в память и вставить content
перед последним }
Альтернатива, возможно, более эффективная память :
sed -n 'x;/}/{x;//{x;p;x;:a;h};//!H;$!b;x;s//content&/p;d};x;//ba;p' file
Используйте пробел для хранения строк, начинающихся со строки, содержащей }
. Если область удержания уже содержит строки, а текущая строка содержит }
, выведите эти строки и начните заново с sh с текущей строки. В конце файла вернитесь в область удержания (если она не пустая) и вставьте content
перед }
.