J'ai deux fichiers très volumineux (1 000 000 de lignes)
le fichier "A" est composé de lignes de 4 champs séparés par un ;
Extrait du fichier "A":
101429;137;01;0034;
101457;137;01;0036;
101587;137;01;0041;
101470;137;01;0043;
100342;137;01;0052;
96808;137;01;0056;
le fichier "B" est composé de lignes de 17 champs séparés par un ;
Extrait du fichier "B":
PA203961;APA203961;0;;;137;;;;01;0034;000099;G00257;16101995;03705;;
PA203962;APA203962;0;;;118;;;;01;0081;0000035;+00010;01011970;;;
PA203963;APA203963;0;;;118;;;;01;0083;0000500;G00257;16101995;03705;0029;
PA203964;APA203964;0;;;118;;;;01;0089;000000175;W00159;26061998;03881;0038;
PA203965;APA203965;0;;;118;;;;01;0096;000000104;F00271;23032007;;0039;
PA203966;APA203966;0;;;118;;;;01;0097;000000088;B00297;01011989;01651;0041;
PA203967;APA203967;2;;;118;;PAR203967;;01;0099;000000235;*00153;12122000;;0045;
Je souhaiterai rajouter à la fin des lignes du fichier "B" le premier champ du fichier A lorsque:
- le deuxième champ du fichier A est égal au sixième champ du fichier B
- et que le troisième champ du fichier A est égal au dixième champ du fichier B
- et que le quatrième champ du fichier A est égal au onzième champ du fichier B
(Voir champs en gras dans les premières lignes)
Comment le faire le plus rapidement possible?
Avec deux boucles while read c'est beaucoup trop long.
J'ai pensé à awk mais on ne peut pas mettre une boucle awk dans une autre.
Je suis bloqué...
Merci pour votre aide!
Partager