Recherche avec AWK + Ajout

Résolu/Fermé
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 23 avril 2015 à 22:29
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 24 avril 2015 à 13:46
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

dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
24 avril 2015 à 09:54
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
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
24 avril 2015 à 13:46
bonjour Dubcek

Merci pour ton retour le code marche parfaitement.


cdlt.
0