Traitement avec Awk [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,


j'ai un fichier file1 ci-dessous et je voudrais obtenir le FILEX ci-dessous avec AWK

file1
7017;1;15;7017;11;34412;Bberi-Abattoir-HR_7
7017;2;17;7017;11;34412;Bberi-Abattoir-HR_7
7017;3;16;7017;11;34412;Bberi-Abattoir-HR_7
7017;4;14;7017;11;34412;Bberi-Abattoir-HR_7
8563;1;19;8563;17;21108;Abattoir-HR_7
8563;2;21;8563;17;21108;Abattoir-HR_7
8563;3;18;8563;17;21108;Abattoir-HR_7
8563;4;17;8563;17;21108;Abattoir-HR_7
8563;5;20;8563;17;21108;Abattoir-HR_7


FILEX


17;21108;Abattoir-HR_7;5
11;34412;Bberi-Abattoir-HR_7;4



Merci d'avance

6 réponses

Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 095
Salut,

Et dubcek devra arriver au fichier final suivant quels critères ? ;-))
Messages postés
191
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
12 février 2021

salut


le fichier final donne le nombre de ligne contenant exactement le dernier champ du fichier file1

"Abattoir-HR_7" et "Bberi-Abattoir-HR_7"

NB : le fichier original comprend plus de 10 mille lignes.

merci d'avance.

cdlt
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 252
hello
$ awk 'BEGIN {FS=OFS=";"} {t1[$7]++; t2[$7]=$5 OFS $6} END {for (n in t1)print t2[n], n, t1[n]}' fichier
17;21108;Abattoir-HR_7;5
11;34412;Bberi-Abattoir-HR_7;4

c'est résolu, là ?
https://forums.commentcamarche.net/forum/affich-31214843-extraire-des-lignes-dans-un-fichier
Messages postés
191
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
12 février 2021

bonjour Dubcek

Merci ce code marche parfaitement ( resolu)

"c'est résolu, là ?
https://forums.commentcamarche.net/forum/affich-31214843-extraire-des-lignes-dans-un-fichier"

Merci celui la aussi marche avec quelque regalge a faire. je valide en Resolu

cependant je galere sur une autre action

j ai le file1 ci dessous




File1

34,31,Bfsam-Bamendzi-II-HR_6
34,31,Bfsam-Bamendzi-II-HR_1
34,31,Bfsam-Bamendzi-II-HR_3
34,31,Bfsam-Bamendzi-II-HR_7
34,31,Bfsam-Bamendzi-II-HR_8
34,31,Bfsam-Bamendzi-II-HR_2
66,31,Meiganga-HR_1
66,31,Meiganga-HR_2
66,31,Meiganga-HR_3
39,31,Dabanga-HR_2
39,31,Dabanga-HR_1
39,31,Dabanga-HR_3
52,31,Ma-HR_3
52,31,Ma-HR_1
52,31,Ma-HR_2


File2

34,31,Bfsam-Bamendzi-II-GD,1368
66,31,Meiganga-AG_ADM_004,2136
39,31,Dabanga-OS,1601
52,31,Ma-AG_NRO_021,2517




je veux obtenir le file3 en prenant comme critere le champ1 et champ2

pour avoir le resultat ci-dessous

file3


34,31,Bfsam-Bamendzi-II-HR_6,Bfsam-Bamendzi-II-GD,1368
34,31,Bfsam-Bamendzi-II-HR_1,Bfsam-Bamendzi-II-GD,1368
34,31,Bfsam-Bamendzi-II-HR_3,Bfsam-Bamendzi-II-GD,1368
34,31,Bfsam-Bamendzi-II-HR_7,Bfsam-Bamendzi-II-GD,1368
34,31,Bfsam-Bamendzi-II-HR_8,Bfsam-Bamendzi-II-GD,1368
34,31,Bfsam-Bamendzi-II-HR_2,Bfsam-Bamendzi-II-GD,1368
66,31,Meiganga-HR_1,Meiganga-AG_ADM_004,2136
66,31,Meiganga-HR_2,Meiganga-AG_ADM_004,2136
66,31,Meiganga-HR_3,Meiganga-AG_ADM_004,2136
39,31,Dabanga-HR_2,Dabanga-OS,1601
39,31,Dabanga-HR_1,Dabanga-OS,1601
39,31,Dabanga-HR_3,Dabanga-OS,1601
52,31,Ma-HR_3,Ma-AG_NRO_021,2517
52,31,Ma-HR_1,Ma-AG_NRO_021,2517
52,31,Ma-HR_2,Ma-AG_NRO_021,2517



j ai essaie le code cidessous mais je galere :


awk -F, '{t[$1, $2]=t[$1, $2] $3 FS} END{for (n in t){sub(FS "$", "", t[n]); print t[n]}}' new_8.txt BTS.txt
Meiganga-HR_1,Meiganga-HR_2,Meiganga-HR_3,Meiganga-AG_ADM_004
Bfsam-Bamendzi-II-HR_6,Bfsam-Bamendzi-II-HR_1,Bfsam-Bamendzi-II-HR_3,Bfsam-Bamendzi-II-HR_7,Bfsam-Bamendzi-II-HR_8,Bfsam-Bamendzi-II-HR_2,Bfsam-Bamendzi-II-GD
Ma-HR_3,Ma-HR_1,Ma-HR_2,Ma-AG_NRO_021
Dabanga-HR_2,Dabanga-HR_1,Dabanga-HR_3,Dabanga-OS



Merci encore de ton aide sur ce coup.

cdlt
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 252
essayer
$ awk 'BEGIN {FS=OFS=","} FNR==NR {t1[$1, $2]=$3 FS $4; next} {print $1, $2, $3, t1[$1, $2]}' fichier2 fichier1
34,31,Bfsam-Bamendzi-II-HR_6,Bfsam-Bamendzi-II-GD,1368
34,31,Bfsam-Bamendzi-II-HR_1,Bfsam-Bamendzi-II-GD,1368
34,31,Bfsam-Bamendzi-II-HR_3,Bfsam-Bamendzi-II-GD,1368
...
...
Messages postés
191
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
12 février 2021

Bonjour Dubcek

super ca marche Bien merci encore.


cdlt.
Bonne et heureuse annee 2015