Thanks era, but I am not seeing expected output using perl command
$ perl -0777 -pe 's/\A[^\{]*\{//s; s/\}.*?\{/\n/sg; s/\}[^\}]*\Z//s' test
Blah1
Blah2
Blah3
...
So it looks like that your script is extracting everything between { and }
Is there any way that this can be cooked in sed?
I was thinking on the line of
sed -e "/^struct.*{.*/,/.*}.*/s/^struct[[:blank:]]*\(.*\)[[:blank:]]*{\(.*\)}\(.*\);/struct \1\3 {\2};/g
This is where I see problem in extracting multiline "\2" and "\3"
I know I am not an advance sed user, and it needs some N H kinda magic