Awk recherche avec deux pattern

Résolu/Fermé
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 13 déc. 2017 à 18:44
 GHISLINO - 16 déc. 2017 à 17:23
Bonjour,

'ai deux fichier file1 et File2 ci-dessous et je voudrais obtenir le FILEX ci-dessous avec AWK avec comme critère deux pattern du champ 4 et 5 des deux fichiers

J'ai essayé le code ci-dessous qui ne prend en compte qu'un seul pattern


awk -F ";" 'FNR==NR {t[$4]=$0; next} {print $0 FS t[$4]}' File2 File1


Merci d'avance

File1

30/11/2017 18:47;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403699/BCF-2310;30/11/2017 19:20;018BKO
30/11/2017 18:53;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-990;30/11/2017 18:59;1265BKO
30/11/2017 21:38;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-3520;30/11/2017 21:43;106BKO
30/11/2017 22:09;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403703/BCF-1370;30/11/2017 22:24;234BKO
30/11/2017 22:09;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-4060;30/11/2017 22:15;1227BKO
30/11/2017 22:22;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-930;30/11/2017 22:36;1235BKO
30/11/2017 22:59;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-320;30/11/2017 23:29;156BKO
30/11/2017 23:18;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-40;30/11/2017 23:30;012BKO


File2

30/11/2017 21:37;TENSION_BASSE_BATTERIE;PLMN-PLMN/BSC-403701/BCF-3520;30/11/2017 21:43;106BKO
23/11/2017 18:40;TENSION_BASSE_BATTERIE;PLMN-PLMN/BSC-403701/BCF-930;30/11/2017 22:36;1235BKO
30/11/2017 22:59;TENSION_BASSE_BATTERIE;PLMN-PLMN/BSC-403701/BCF-320;30/11/2017 23:29;156BKO
30/11/2017 23:10;TENSION_BASSE_BATTERIE;PLMN-PLMN/BSC-403701/BCF-40;30/11/2017 23:30;012BKO


Output FileX

30/11/2017 18:47;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403699/BCF-80;30/11/2017 19:25;018BKO
30/11/2017 18:47;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403699/BCF-2310;30/11/2017 19:20;018BKO
30/11/2017 18:53;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-990;30/11/2017 18:59;1265BKO
30/11/2017 21:38;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-3520;30/11/2017 21:43;106BKO;30/11/2017 21:37;TENSION_BASSE_BATTERIE;PLMN-PLMN/BSC-403701/BCF-3520;30/11/2017 21:43;106BKO
30/11/2017 22:09;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403703/BCF-1370;30/11/2017 22:24;234BKO
30/11/2017 22:09;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-4060;30/11/2017 22:15;1227BKO
30/11/2017 22:22;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-930;30/11/2017 22:36;1235BKO;23/11/2017 18:40;TENSION_BASSE_BATTERIE;PLMN-PLMN/BSC-403701/BCF-930;30/11/2017 22:36;;1235BKO
30/11/2017 22:59;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-320;30/11/2017 23:29;156BKO;30/11/2017 22:59;TENSION_BASSE_BATTERIE;PLMN-PLMN/BSC-403701/BCF-320;30/11/2017 23:29;;156BKO
30/11/2017 23:18;BTS O&M LINK FAILURE;PLMN-PLMN/BSC-403701/BCF-40;30/11/2017 23:30;012BKO;30/11/2017 23:10;TENSION_BASSE_BATTERIE;PLMN-PLMN/BSC-403701/BCF-40;30/11/2017 23:30;;012BKO


A voir également:

3 réponses

salut,

awk -F ";" 'FNR==NR {t[$4,$5]=$0;  next} {print $0 FS t[$4,$5]}' File2 File1

???
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
14 déc. 2017 à 08:35
hello
$ awk -F ";" 'FNR==NR {t[$4,$5]=$0;  next} {if(c=t[$4, $5])c=FS c; else c=""; ; print $0 c}' fiile2 file1
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
15 déc. 2017 à 08:14
plus court
$ awk -F ";" 'FNR==NR {t[$4,$5]=$0;  next} c=t[$4, $5] {c=FS c} {print $0 c}'  file2 file1
0
Bonjour à Tous,

Merci infiniment à qqchquicommenceparQ et Dubcek pour vos réponses, merci encore les Gars.

cldt
0