Menu

Awk recherche avec deux pattern [Résolu/Fermé]

Messages postés
161
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
16 juin 2018
- - Dernière réponse :  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


Afficher la suite 

3 réponses

0
Merci
salut,

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

???
Messages postés
17705
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
25 mai 2019
4321
0
Merci
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
dubcek
Messages postés
17705
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
25 mai 2019
4321 -
plus court
$ awk -F ";" 'FNR==NR {t[$4,$5]=$0;  next} c=t[$4, $5] {c=FS c} {print $0 c}'  file2 file1
0
Merci
Bonjour à Tous,

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

cldt