我有两个文件:
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-end 中,应替换的行的索引位于 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