Script AWK et traitement de fichier
Résolu
pcsystemd
Messages postés
702
Date d'inscription
Statut
Membre
Dernière intervention
-
pcsystemd Messages postés 702 Date d'inscription Statut Membre Dernière intervention -
pcsystemd Messages postés 702 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un fichier test.sql formaté de la sorte :
je souhaiterais formaté le fichier comme cela :
j'utilise AWK en ligne de commande comme suit :
mais j'ai pas tout a fait ce que je souhaite en sortie dans test1.sql :
il me prend le titre de la colonne email puis la séparation hors je voudrais les supprimer. De plus il me laisse un espace entre le
Que dois je modifier dans ma ligne AWK?
Merci
j'ai un fichier test.sql formaté de la sorte :
email ---------------------------------------------------- 0033@mail.fr 007@mail.fr mc@mail.fr
je souhaiterais formaté le fichier comme cela :
INSERT INTO module (uid, mail) VALUES (1,'0033@mail.fr'); INSERT INTO module (uid, mail) VALUES (1,'007@mail.fr'); INSERT INTO module (uid, mail) VALUES (1,'mc@mail.fr');
j'utilise AWK en ligne de commande comme suit :
awk -F \| -v Q=\' '{ prov=($1~/^ *$/)?"":uid;printf ("INSERT INTO module (uid, mail) VALUES (1,%s);\n",Q $1 Q) }' test.sql > test1.sql
mais j'ai pas tout a fait ce que je souhaite en sortie dans test1.sql :
INSERT INTO module (uid, mail) VALUES (1,' email '); INSERT INTO module (uid, mail) VALUES (1,'----------------------------------------------------'); INSERT INTO module (uid, mail) VALUES (1,' 0033@mail.fr'); INSERT INTO module (uid, mail) VALUES (1,' 007@mail.fr'); INSERT INTO module (uid, mail) VALUES (1,' mc@mail.fr');
il me prend le titre de la colonne email puis la séparation hors je voudrais les supprimer. De plus il me laisse un espace entre le
1,' 0033' au lieu de 1,'0033' 1,' 007' au lieu de 1,'007' 1,' mc' au lieu de 1,'mc'
Que dois je modifier dans ma ligne AWK?
Merci
A voir également:
- Script AWK et traitement de fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
3 réponses
hello
$ awk '/@/ {c=39;printf("INSERT INTO module (uid, mail) VALUES (1,%c%s%c);\n", c, $1, c)}' < f1
INSERT INTO module (uid, mail) VALUES (1,'0033@mail.fr');
INSERT INTO module (uid, mail) VALUES (1,'007@mail.fr');
INSERT INTO module (uid, mail) VALUES (1,'mc@mail.fr');
$ cat f1 email ---------------------------------------------------- 0033@mail.fr 007@mail.fr mc@mail.fr
$ awk '/@/ {c=39;printf("INSERT INTO module (uid, mail) VALUES (1,%c%s%c);\n", c, $1, c)}' < f1
INSERT INTO module (uid, mail) VALUES (1,'0033@mail.fr');
INSERT INTO module (uid, mail) VALUES (1,'007@mail.fr');
INSERT INTO module (uid, mail) VALUES (1,'mc@mail.fr');