ファイルから値を抽出し、その値を別のファイルの特定の行に配置します。

ファイルから値を抽出し、その値を別のファイルの特定の行に配置します。

ファイル1の2行目から0.98728E-02の値を取得し、ファイル2の8行目の値1,000を入力したいと思います。ファイル2をファイル1に置き換えるには?

私のファイル1:

Genetic variance(s) for effect  2       
0.98728E-02
Genetic variance(s) for effect  3       
0.56818E-02

「0.98728E-02」の値を取得し、ファイル2の「1.0000」の代わりに行に入れる必要があります。

私のファイル2:

DATAFILE 
renf90.dat 
NUMBER_OF_TRAITS 
1 
NUMBER_OF_EFFECTS 
9 
RANDOM_RESIDUAL VALUES 
1.0000
RANDOM_GROUP 
2

「sed」の言語で始めましたが、どうすればいいかわかりません...

sed '23s/1.0000/  .....

私が望む最終ファイル。

DATAFILE 
renf90.dat 
NUMBER_OF_TRAITS 
1 
NUMBER_OF_EFFECTS 
9 
RANDOM_RESIDUAL VALUES 
0.98728E-02
RANDOM_GROUP 
2

PS:行の前後には定数キーワードはありません。 PS:出力ファイル(ファイル1)に応じて2つまたは3つの値を抽出する必要があります。

ベストアンサー1

動作すると確信していsedますが、次のものを簡単に使用できますawk

awk 'NR==2 { value=$1 }
     FILENAME=="file2" { if (FNR==8) print value; else print }
' file1 file2 > output_file

おすすめ記事