J'ai trois fichiers séparés par des espaces.Joindre des colonnes en fonction de la valeur dans la première colonne mais sans que la colonne apparaisse deux fois
Fichier 1 (file1.txt):
FID IID SEX PHENOTYPE KIR2DL5 KIR2DS5
A1 A1 0 1 1 2
A2 A2 1 2 1 2
A3 A3 0 1 1 1
Fichier 2 (file2.txt):
FID Bw4
A1 2
A2 1
A3 1
fichier 3 (file3.txt):
FID IID INFO
A1 A1 0.4
A2 A2 0.6
A3 A3 0.2
Je veux fusionner les 3 fichiers dans un seul fichier si la valeur dans la colonne FID est le même entre les 3 fichiers, afin d'avoir:
FID IID SEX PHENOTYPE KIR2DL5 KIR2DS5 Bw4 INFO
A1 A1 0 1 1 2 2 0.4
A2 A2 1 2 1 2 1 0.6
A3 A3 0 1 1 1 1 0.2
Je sais que je peux fusionner les fichiers en utilisant la commande suivante :
join file1.txt file2.txt | join - file3.txt > final.txt
Mais en utilisant cette commande, il ajoute également la colonne IID du dossier 3, apparaissant ainsi deux fois, comme ceci:
FID IID SEX PHENOTYPE KIR2DL5 KIR2DS5 Bw4 IID INFO
A1 A1 0 1 1 2 2 A1 0.4
A2 A2 1 2 1 2 1 A1 0.6
A3 A3 0 1 1 1 1 A1 0.2
est-il un moyen de rejoindre les 3 fichiers sans avoir cette colonne deux fois?
Informations importantes:
Tous les FIDs sont en commun entre les 3 fichiers.
Le nombre de colonnes présentes dans 1 fichier peut changer
Le nombre de colonnes dans file3 est-il statique? Si oui, vous pouvez supprimer la deuxième colonne de file3 (voir 'man colrm'). En utilisant bash [substitution de processus] (http://tldp.org/LDP/abs/html/process-sub.html): 'join file1.txt file2.txt | join - <(colrm 2
" Je sais que je peux fusionner les fichiers en utilisant awk comme ceci: "?? Aucun code awk montré ;-) Bonne chance! – shellter