Concaténer des chaînes dans awk

J'ai un fichier de log qui j'ai besoin de "replay" sur le serveur.

Il contient des entrées comme ceci:

Request:
        query: EXEC prc_insert_customer
        @param0: 110040851
        @param1: 137463
        @param2: user@example.com
        @param3: John
        @param4: Smith
        @param5: Some address
        @param6:
        @param7:
        @param8: Some city
        @param9: GBR
        @param10: POSTCODE
        @param11: (555) 123-45-67
Response:

...

J'ai besoin de convertir chaque morceau comme ça dans

EXEC prc_insert_customer '110040851', '137463',  ..., '(555) 123-45-67'

J'ai essayé d'utiliser awk:

/EXEC prc_insert_customer/ {
        str = "EXEC prc_insert_customer";
}

str && /@param/ {
        if ($1 == "@param0:")
                sep = ""
        else
                sep = ","
        str = ((str) (sep) " '"($2) ("'"))
}

/^Response/ {
        if (str)
                print str
        str = ""
}

mais le résultat que j'obtiens est:

', '(555)'DE', '', 'Some', 'GBR0851

Comment puis-je obtenir de bons résultats?

- Je utiliser GNU Awk 4.0.0 sur Fedora 17.

OriginalL'auteur Quassnoi | 2012-06-06