Como isso funcionará para você?
awk '{for(i=1; i<=NF; i++) {if ($i ~ /^{/) {printf("%s|", $i)} else {printf("%s ", $i)}} printf("\n")}' test.in
para o resultado esperado 1 e
awk '{for(i=1; i<=NF; i++) {if ($i ~ /^{/) {printf("%s|", $i)} else {printf("%s ", $i)}} printf("\n")}' test.in | sed -e 's#^{##' -e 's#} {#|#g' -e 's#} $##'
para o resultado esperado 2.