Awk
根據第二個文件中的索引替換一個文件中的行
我有兩個文件:
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
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