명령어/Linux

[리눅스] join 공통 필드로 두 파일 합치기

jykim23 2026. 7. 13. 17:01
반응형

부제: 공통 키(필드)를 기준으로 두 파일을 DB처럼 결합하기

join f1.txt f2.txt       # 첫 필드가 키
join -1 2 -2 1 f1 f2     # 키 필드 위치 지정
join -t, a.csv b.csv     # 구분자 지정
$ join l1.txt l2.txt
1 apple red
2 banana yellow
3 cherry dark

join은 SQL의 JOIN처럼, 공통 필드(키)가 같은 줄끼리 두 파일을 옆으로 합친다.
기본은 첫 필드가 키이고 양쪽 다 그 필드로 정렬돼 있어야 한다.
두 CSV를 키로 묶을 때 유용하다.

이렇게도 쓴다

구분자를 지정해 CSV를 합친다(-t).

join -t, users.csv orders.csv

 

각 파일의 키 필드 위치를 지정한다.

join -1 2 -2 1 a.txt b.txt

 

정렬 후 합친다(join은 정렬된 입력이 필요).

join <(sort a) <(sort b)

 

짝이 없는 줄도 보여준다(-a, outer join).

join -a1 a.txt b.txt
반응형