Recherche avec AWK + Ajout [Résolu/Fermé]

Signaler
Messages postés
191
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
12 février 2021
-
Messages postés
191
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
12 février 2021
-
Bonjour,

je veux traiter avec AWK les 3 fichiers : rechercher le champ1 de File1 dans les fichiers File2 et File3 et ajouter YES si l'on
trouve le champ1 ou no si le contraire.

Merci d'avance


File1
1504287881;T;R;T;g;i;u
1409579890;T;R;T;g;i;u
1504368132;T;R;T;g;i;u
1504491356;T;o;T;g;i;u
1504509233;T;R;p;g;x;u
1504549350;T;R;T;g;y;u
1504525525;T;R;T;k;i;u
1504510693;T;R;T;g;i;u

File2

T;R;T;g;1504368132;i;u;6;8
T;R;T;g;1504491356;i;u;8;0
T;R;T;g;1504509233;i;u;p;u

File3
T;R;T;g;1409579890;y;u;j;g
T;R;T;k;1504532575;i;u;h;f
T;R;T;g;1504491356;i;u;d;b
T;R;T;g;1504509233;i;u;f;s

Resultat

FileX
1504287881;T;R;T;g;i;u;NO;NO
1409579890;T;R;T;g;i;u;NO;NO
1504368132;T;R;T;g;i;u;YES;NO
1504491356;T;o;T;g;i;u;YES;YES
1504509233;T;R;p;g;x;u;YES;YES
1504549350;T;R;T;g;y;u;NO;NO
1504525525;T;R;T;k;i;u;NO;NO
1504510693;T;R;T;g;i;u;NO;NO


merci d'avance





2 réponses

Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 257
hello
Resultat
FileX
1504287881;T;R;T;g;i;u;NO;NO
1409579890;T;R;T;g;i;u;NO;NO <-----faux, non ?
...

$ awk -F ";" '(n=ARGIND)<3 {t[n, $5]++; next} {t[1, $1]? a="YES": a="NO"; t[2, $1]? b="YES": b="NO"; print $0 FS a FS b}' File2 File3 File1
1504287881;T;R;T;g;i;u;NO;NO
1409579890;T;R;T;g;i;u;NO;YES
1504368132;T;R;T;g;i;u;YES;NO
1504491356;T;o;T;g;i;u;YES;YES
1504509233;T;R;p;g;x;u;YES;YES
1504549350;T;R;T;g;y;u;NO;NO
1504525525;T;R;T;k;i;u;NO;NO
1504510693;T;R;T;g;i;u;NO;NO
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
191
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
12 février 2021

bonjour Dubcek

Merci pour ton retour le code marche parfaitement.


cdlt.