Utilisation de AWK : runaway string constant

Résolu/Fermé
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 11 juil. 2018 à 08:42
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 17 juil. 2018 à 14:12
Bonjour,

J'ai un fichier qui contient les entrées suivantes séparées par un tube | :

toto@mail.com|titi@mail.com|tutu@free.fr|titul@gmail.com| etc..


Je souhaiterais en sortie cela :

insert into ma_table(crted_a,recer,opt,reaon,teme_id) select '2018-07-11','toto@mail.com','','Message',id from ma_table where id in(select id from ma_table);
insert into ma_table(crted_a,recer,opt,reaon,teme_id) select '2018-07-11','titi@mail.com','','Message',id from ma_table where id in(select id from ma_table);
etc..


J'ai donc utilisé AWK avec la commande suivante :

awk -F \| -v Q=\' '{ prov=($1~/^ *$/)?"":prov;printf ("insert ma_table(created_t,recver,option,reason,teate_id) select '2018-07-11','%s','','message',id from ma_table2 where id in(select id from ma_table3);", Q $1 Q) }' fichier.txt 


Mais j'ai l'erreur suivante :

awk: line 1: runaway string constant "insert int ...


Merci pour votre aide.



3 réponses

Utilisateur anonyme
11 juil. 2018 à 10:44
salut,

ce ne serait pas les apostrophes qui font échouer la commande ?
remplace-les par
'\''

=>
awk 'cmd'\''autre'\''chose'

parce que chaque apostrophe ouvre et ferme la commande awk.
0