2016-07-21 4 views
1

Bonjour à tous, j'ai deux fichiers comme ceux-ci:Copier un champ spécifique d'un fichier et le coller dans un autre champ spécifique d'un autre fichier existant - lunx commandes

fichier 1

45.999 60.9999 
70.000 23.0090 

Fichier 2

DATAFILE 
pheno.txt 
TRAITS 
FIELDS_PASSED TO OUTPUT 

WEIGHT(S) 

RESIDUAL_VARIANCE 

EFFECT 
2 cross alpha 
EFFECT 
1 cross alpha 
RANDOM 
animal 
FILE 
pedigree.txt 
SNP_FILE 
snp_.txt 
(CO)VARIANCES 

et doivent transmettre les valeurs de fichier 1 pour des endroits spécifiques de fichier 2 comme celui-ci:

Fichier 2

DATAFILE 
pheno.txt 
TRAITS 
FIELDS_PASSED TO OUTPUT 

WEIGHT(S) 

RESIDUAL_VARIANCE 
45.999 
EFFECT 
2 cross alpha 
EFFECT 
1 cross alpha 
RANDOM 
animal 
FILE 
pedigree.txt 
SNP_FILE 
snp_.txt 
(CO)VARIANCES 
23.0090 

remémoration, je veux garder le fichier 2, il suffit d'ajouter le fichier 1 valeurs

+0

Oui, vous avez votre travail a été découpé pour vous. Je recommande que vous amélioriez également votre spécification pour identifier les cas de coin qui sont attendus, et indiquer comment gérer les erreurs imprévues. Une fois que vous avez tenté d'écrire votre code et que vous avez un problème spécifique, postez une question pouvant être traitée, y compris ** votre code **, de petits exemples d'entrées, la sortie attendue et les messages d'erreur que vous recevez actuellement. Veuillez lire la FAQ avant de poster d'autres questions. Bonne chance. – shellter

Répondre

1
set -- $(<file1) 
sed -i "/RESIDUAL_VARIANCE/{n;c$1 
};\${s/[0-9].*/$4/;t;a$4 
}" file2 

Voir aussi man sed:

-i modifier les fichiers dans