2つのファイルがあります。
Ref.txt には以下が含まれます。
ABCDEFG,15147,1,2,6
HIJKLMN,500,3,4
および以下を含むSeq.txt
ABCXXXX
ABCDEXX
IIJKXXX
HIHKXXX
LMNOPQR
BBCDEXX
STUVWXY
Seq.txtファイルの特定の行を置き換えたいです。置き換える行のインデックスはRef.txtファイルのフィールド3の末尾にあり、置き換える行のインデックスはRef.txtファイルの同じ行のフィールド1にあります。この例で私が探している出力は次のとおりです。
ABCDEFG
ABCDEFG
HIJKLMN
HIJKLMN
LMNOPQR
ABCDEFG
STUVWXY
答え1
awk -F, '
NR==FNR {for(i=3;i<=NF;i++) a[$i] = $1; next}
FNR in a {$0 = a[FNR]}
1
' Ref.txt Seq.txt
ABCDEFG
ABCDEFG
HIJKLMN
HIJKLMN
LMNOPQR
ABCDEFG
STUVWXY