2 番目のファイルのインデックスに基づくファイルの改行

2 番目のファイルのインデックスに基づくファイルの改行

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

おすすめ記事