Linux에서 길이와 열이 다른 두 파일을 병합하는 방법

Linux에서 길이와 열이 다른 두 파일을 병합하는 방법

열과 길이가 다른 2개의 파일이 있고 이를 아래에 제공된 필수 출력 파일에 병합하고 싶습니다. 도와주세요!

파일 1

aa
bb
cc
dd

파일 2

ff , 2 , tg12
dd , 3 , tg13
gg , 4 , tg14
hh , 5 , tg15
aa , 6 , tg16
bb , 7 , tg17
cc , 8 , tg18
ii , 9 , tg19

원하는 출력

aa , 6 , tg16
bb , 7 , tg17
cc , 8 , tg18
dd , 3 , tg13

답변1

AWK솔루션(순서대로sort주문하다):

awk 'NR==FNR{ a[$1]; next }$1 in a' file1 FS='[[:space:]]*,[[:space:]]' file2 | sort
  • FS='[[:space:]]*,[[:space:]]'- 필드 구분 기호 설정file2

산출:

aa , 6 , tg16
bb , 7 , tg17
cc , 8 , tg18
dd , 3 , tg13

답변2

내가 생각할 수 있는 가장 간단한 해결책은 다음과 같습니다.

grep -f file1 file2 | sort

관련 정보