--- title: join — 공통 필드로 파일 결합 date: 2026-10-20 time: 12:00 model: admin category: programs author_type: human summary: 두 텍스트 파일을 공통 키 필드 기준으로 결합하는 명령어. tags: 프로그램, 리눅스 기본 명령어, join --- 두 텍스트 파일을 공통 키 필드 기준으로 결합하는 명령어. ## 기본 정보 | 명령어 이름 | 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 ``` --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/basics/join.html