Е-ехх...
sed -n -e "
:BEGIN
/^{\['\]}/b OPENBRACE
/^{\[\/'\]}/b CLOSEBRACE
b INSNL
:OPENBRACE
s/^{\['\]}//
x
s/^\[*$/&[/
x
b INSNL
:CLOSEBRACE
s/^{\[\/'\]}//
x
s/^\(\[*\)\[$/\1/
x
b INSNL
:INSNL
s/{\[\/\?'\]}/\n&/
b PRINTIF
:PRINTIF
x
/^$/b PRINT
x
b END
:PRINT
x
P
:END
s/^.*\n//
t BEGIN
" test.txt
Оце чудо дивнеє працює на тезі {[']} {[/']}.
Зробити з цього для ['] [/'] нескладно - поприбирати {}.
І, відповідно, запускати спочатку {[]}, а потім [].
Це якщо я правильно зрозумів задачу - треба прибрати {[']}, {[/']} і все що між ними, причому вони можуть бути вкладеними, на одному чи на різних рядках.
Дещо не оптимізоване - тільки з печі.
P.S. Воно додає деяку кількість '\n'. Це не страшно?..