Remplacer un champ d'un fichier par un autre champ

Résolu/Fermé
Marty64 - Modifié par Marty64 le 26/02/2015 à 12:02
 Marty64 - 1 mars 2015 à 12:38
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


A voir également:

2 réponses

dubcek Messages postés 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 5 615
28 févr. 2015 à 12:12
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
1
Salut Dubcek,
Quel talent c'est exactement ca !
Bien trot compliqué pour que je trouve cela tout seul, bravo et merci ;-)
0
dubcek Messages postés 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 5 615
27 févr. 2015 à 14:57
hello
toto3.txt ne devrait pas contenir evelyne;sanou;77777 , non ?
0
Salut,
J'ai oublié un champs, il faut lire dans toto2.txt et toto3.txt:
evelyne;sanou;secrétaire;77777
0
dubcek Messages postés 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 5 615
27 févr. 2015 à 16:06
alors j'ai pas compris.
tu veux le contenu de toto1 plus les lignes de toto2 dont le champ 4 est présent dans toto1 ?
0
Je voudrais le contenu de toto1 plus le contenu de toto2. Mais si il y a doublons alors je veux remplacer le N° qui est dans le champs 4 par celui présent dans toto2.
0