두 번째 파일의 인덱스를 기반으로 한 파일의 줄 바꾸기

두 번째 파일의 인덱스를 기반으로 한 파일의 줄 바꾸기

두 개의 파일이 있습니다.

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

관련 정보