English

join — 공통 필드로 파일 결합

Linux / 리눅스 기본 명령어 / join.html

리눅스 기본 명령어원문등록 2026-10-20T09:00:00+09:00

두 텍스트 파일을 공통 키 필드 기준으로 결합하는 명령어.

기본 정보

명령어 이름join
한 줄 소개두 텍스트 파일을 공통 키 필드 기준으로 결합하는 명령어.
제공GNU coreutils
공식 문서https://man7.org/linux/man-pages/man1/join.1.html
지원 운영체제Linux, macOS, BSD, WSL
설치 여부기본 탑재
분류리눅스 기본 명령어 (태그: 리눅스 기본 명령어 (태그: join, 결합, 필드, 텍스트))

이 명령어는 무엇인가?

join은 두 파일에서 같은 키를 가진 줄을 찾아 하나의 줄로 합칩니다. 데이터베이스의 조인과 비슷하지만, 입력이 키 기준으로 정렬되어 있어야 정확한 결과가 나옵니다.

-1과 -2로 각 파일의 키 필드를, -t로 구분자를, -a로 한쪽에만 있는 줄의 포함 여부를 지정합니다. 정렬되지 않은 입력은 -t와 sort를 조합해 미리 맞춰 두는 것이 안전합니다.

어떤 문제를 해결하는가?

  • 사용자 ID로 두 목록을 합칠 때
  • CSV 두 개를 공통 키로 결합할 때
  • 한쪽에만 있는 항목을 찾아낼 때
  • paste로는 안 되는 키 기반 결합이 필요할 때

주요 기능

키 기반 결합

같은 키를 가진 줄을 하나로 합칩니다.

  • 활용 상황: 두 목록을 ID로 연결할 때
  • 얻는 결과: 관계형 데이터를 파일에서 재현할 수 있습니다.
  • 제한 사항: 키가 정렬되어 있지 않으면 결과가 어긋납니다.

필드 지정

-1, -2로 각 파일의 키 필드를 고릅니다.

  • 활용 상황: 키가 첫 열이 아닐 때
  • 얻는 결과: 원본 형식을 유지하며 결합할 수 있습니다.
  • 제한 사항: 필드 번호를 잘못 세면 빈 결과가 나옵니다.

불일치 포함

-a1, -a2, -v로 한쪽에만 있는 줄을 다룹니다.

  • 활용 상황: 누락된 항목을 점검할 때
  • 얻는 결과: 차집합을 파일로 확인할 수 있습니다.
  • 제한 사항: 출력 칸이 비어 해석이 필요합니다.

설치 및 실행

설치 여부 확인

join --version

sudo apt install coreutils # Debian/Ubuntu sudo dnf install coreutils # Fedora

실제 사용 예제

기본 결합

첫 필드를 키로 결합합니다.

sort users.txt -o u.txt
sort mail.txt -o m.txt
join u.txt m.txt

구분자 지정

쉼표 구분 CSV를 결합합니다.

sort -t, -k1,1 a.csv -o a.s
sort -t, -k1,1 b.csv -o b.s
join -t, a.s b.s

한쪽만 있는 항목

왼쪽에만 있는 키를 출력합니다.

join -v1 u.txt m.txt | head