2016-07-21 68 views
1

Guten Tag alle Befehle, ich habe zwei Dateien wie diese:ein bestimmtes Feld einer Datei kopieren und in ein anderes bestimmtes Feld eines anderen bestehenden Datei einfügen - lunx

Datei 1

45.999 60.9999 
70.000 23.0090 

Datei 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 

und müssen die Werte der Datei 1 für bestimmte Orte der Datei 2 wie folgt weitergeben müssen:

Datei 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 

Erinnerns, möchte ich die Datei 2 halten, fügen Sie einfach die Datei 1 Werte

+0

Ja, du hast habe deine Arbeit für dich rausgeschnitten. Ich empfehle, dass Sie auch Ihre Spezifikation verbessern, um zu ermitteln, welche Fälle erwartet werden und wie unvorhergesehene Fehler behandelt werden. Nachdem Sie versucht haben, Ihren Code zu schreiben und ein bestimmtes Problem zu haben, geben Sie eine umsetzbare Frage ein, die ** Ihren Code **, kleine Beispieleingaben, die erwartete Ausgabe für diese Eingaben und alle Fehlermeldungen enthält, die Sie gerade erhalten. Bitte lesen Sie die FAQ, bevor Sie weitere Fragen stellen. Viel Glück. – shellter

Antwort

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

Siehe auch man sed:

-i Bearbeiten von Dateien in Platz