Traitement avec Awk

Résolu/Fermé
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 29 déc. 2014 à 17:11
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 31 déc. 2014 à 14:54
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

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
29 déc. 2014 à 18:42
Salut,

Et dubcek devra arriver au fichier final suivant quels critères ? ;-))
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
29 déc. 2014 à 23:17
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
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
30 déc. 2014 à 08:56
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
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
30 déc. 2014 à 10:36
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
30 déc. 2014 à 13:32
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
...
...
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
31 déc. 2014 à 14:54
Bonjour Dubcek

super ca marche Bien merci encore.


cdlt.
Bonne et heureuse annee 2015
0