Remplacer un champ d'un fichier par un autre champ
Résolu
Marty64
-
Marty64 -
Marty64 -
Bonjour,
Je dispose de 2 fichiers toto1.txt et toto2.txt sous la forme:
toto1.txt
nicolas;dupond;boulanger;12345
pierre;martin;electricien;67890
jean;plunet;technicien;54321
toto2.txt
raymond;divard;boulanger;55555
pierre;martin;chomeur;66666
evelyne;sanou;77777
Le fichier toto1.txt est à jour question colonne des professions, mais je voudrai un fichier qui me retourne le contenu de toto1.txt avec le numero du 4e champs contenu dans toto2.txt si il y a une personne commune pour donner un fichier toto3.txt de cette forme:
toto3.txt
nicolas;dupond;boulanger;12345
pierre;martin;electricien;66666
jean;plunet;technicien;54321
raymond;divard;boulanger;55555
evelyne;sanou;77777
Je cherche une solution avec les scripts awk ou fichiers comm, paste, sort mais je ne vois pas comment décomposer la chose.
Si vous avez une proposition ;-)
Merci
Marty
Je dispose de 2 fichiers toto1.txt et toto2.txt sous la forme:
toto1.txt
nicolas;dupond;boulanger;12345
pierre;martin;electricien;67890
jean;plunet;technicien;54321
toto2.txt
raymond;divard;boulanger;55555
pierre;martin;chomeur;66666
evelyne;sanou;77777
Le fichier toto1.txt est à jour question colonne des professions, mais je voudrai un fichier qui me retourne le contenu de toto1.txt avec le numero du 4e champs contenu dans toto2.txt si il y a une personne commune pour donner un fichier toto3.txt de cette forme:
toto3.txt
nicolas;dupond;boulanger;12345
pierre;martin;electricien;66666
jean;plunet;technicien;54321
raymond;divard;boulanger;55555
evelyne;sanou;77777
Je cherche une solution avec les scripts awk ou fichiers comm, paste, sort mais je ne vois pas comment décomposer la chose.
Si vous avez une proposition ;-)
Merci
Marty
A voir également:
- Remplacer un champ d'un fichier par un autre champ
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Ouvrir un fichier .dat - Guide
- Creer un fichier .bat - Guide
2 réponses
comme ça ?
$ awk 'BEGIN {FS=OFS=";"} ARGIND==2 {t[$1, $2]=$4} {r[NR]=$0} END {for(n=1; n<=NR;){$0=r[n++]; if(x=t[$1, $2]){$4=x; t[$1, $2]=-1};if(x>=0) print}}' toto1 toto2
nicolas;dupond;boulanger;12345
pierre;martin;electricien;66666
jean;plunet;technicien;54321
raymond;divard;boulanger;55555
evelyne;sanou;secrétaire;77777
Quel talent c'est exactement ca !
Bien trot compliqué pour que je trouve cela tout seul, bravo et merci ;-)