리눅스 명령어 · 3 min read · Sep 17, 2025
리눅스 조인 명령어 튜토리얼 초보자를 위한 가이드 (5가지 예제)
때때로 두 파일을 결합하여 출력이 더욱 의미 있게 만들고 싶을 수 있습니다. 예를 들어, 대륙의 이름이 포함된 파일과 이러한 대륙에 위치한 국가의 이름이 포함된 다른 파일이 있을 수 있으며, 요구 사항은 두 파일을 결합하여 대륙과 해당 국가가 같은 줄에 나타나도록 하는 것입니다.
이것은 단지 하나의 예일 뿐입니다. 이러한 사용 사례는 수백 가지가 있을 수 있습니다. 리눅스를 사용하고 이러한 상황에서 도움이 되는 도구를 찾고 있다면, 명령줄 유틸리티인 join을 확인해 보시기 바랍니다. 이 튜토리얼에서는 이해하기 쉬운 몇 가지 예제를 사용하여 이 명령어에 대해 논의할 것입니다.
이 기사에 언급된 모든 예제는 Ubuntu 16.04에서 테스트되었으며, 우리가 사용한 join 명령어 버전은 8.25입니다.
리눅스 조인 명령어
조인 명령어는 공통 필드를 기준으로 두 파일의 줄을 결합할 수 있게 해줍니다.
join [OPTION]... FILE1 FILE2man 페이지에서 이 도구에 대해 다음과 같이 설명하고 있습니다:
각 입력 줄 쌍의 동일한 조인 필드에 대해 표준 출력에 줄을 씁니다. 기본 조인 필드는 첫 번째이며, 공백으로 구분됩니다. FILE1 또는 FILE2 (둘 다 아님)가 -인 경우, 표준 입력을 읽습니다.다음 예제들은 조인 명령어가 어떻게 작동하는지에 대한 좋은 아이디어를 제공할 것입니다.
1. 조인 명령어를 사용하여 파일의 줄을 결합하는 방법은?
조인 명령어의 기본 사용법을 이해해 봅시다. 두 개의 파일(file1 및 file2)이 다음과 같은 줄을 포함한다고 가정해 보겠습니다:
1. 아시아:
2. 아프리카:
3. 유럽:
4. 북미:그리고
1. 인도
2. 나이지리아
3. 네덜란드
4. 미국이제 다음과 같은 방법으로 이 두 파일을 결합할 수 있습니다:
join file1 file2위 명령어의 출력은 다음과 같습니다:

2. 조인이 쌍을 이루지 않는 줄을 출력하도록 하는 방법은?
기본적으로 조인 명령어는 쌍을 이룰 수 있는 줄만 출력합니다. 예를 들어, file1에 추가 필드(5번 줄)가 포함되어 있다고 가정해 보겠습니다:
1. 아시아:
2. 아프리카:
3. 유럽:
4. 북미:
5. 남미:file1과 file2를 결합해도 출력은 달라지지 않습니다:

이는 쌍을 이루지 않는 줄이 출력에서 제외되기 때문입니다. 그러나 원하신다면 -a 명령줄 옵션을 사용하여 출력에 포함할 수 있습니다. 이 옵션은 도구가 어떤 파일을 언급하고 있는지 알 수 있도록 파일 번호를 전달해야 합니다.
예를 들어, 우리의 경우 명령어는 다음과 같습니다:
join file1 file2 -a 1
따라서 파일 번호 1(file1)의 쌍을 이루지 않는 줄이 출력에 표시된 것을 볼 수 있습니다.
쌍을 이루는 줄을 출력에서 생략하고 쌍을 이루지 않는 줄만 출력하고 싶다면, -v 명령줄 옵션을 사용하여 이를 수행할 수 있습니다. 이 옵션은 -a와 정확히 같은 방식으로 작동합니다.
-v 옵션의 예는 다음과 같습니다:

3. 사용자 정의 조인 필드를 제공하는 방법은?
우리가 이미 알고 있듯이, 조인은 공통 필드를 기준으로 파일의 줄을 결합합니다. 기본적으로 첫 번째 필드가 사용됩니다. 그러나 원하신다면 각 파일에 대해 다른 필드를 지정할 수 있습니다. 예를 들어, file1과 file2의 다음 내용을 고려해 보겠습니다.
* 1. 아시아:
& 2. 아프리카:
@ 3. 유럽:
# 4. 북미:# 1. 인도
@ 2. 나이지리아
& 3. 네덜란드
* 4. 미국이제 각 줄의 두 번째 필드를 조인의 공통 필드로 사용하고 싶다면, -1 및 -2 명령줄 옵션을 사용하여 도구에 이를 알릴 수 있습니다. 전자는 첫 번째 파일을 나타내고, 후자는 두 번째 파일을 나타냅니다. 이 옵션은 해당 파일의 조인 필드를 나타내는 숫자 인수를 요구합니다.
예를 들어, 우리의 경우 명령어는 다음과 같습니다:
join -1 2 -2 2 file1 file2그리고 이 명령어의 출력은 다음과 같습니다:

공통 필드의 위치가 두 파일에서 동일한 경우(예를 들어, 우리가 방금 논의한 예에서처럼 2인 경우), 명령어에서 -1 [field] -2 [field] 부분을 -j [field]로 대체할 수 있습니다. 따라서 우리의 경우 명령어는 다음과 같이 됩니다:
join -j2 file1 file24. 조인 작업을 대소문자 구분 없이 수행하는 방법은?
기본적으로 조인 명령어 작업은 대소문자를 구분합니다. 예를 들어, 다음 파일을 고려해 보겠습니다:
file1
A. 아시아:
B. 아프리카:
C. 유럽:
D. 북미:file2
a. 인도
b. 나이지리아
c. 네덜란드
d. 미국이제 기본(첫 번째) 공통 필드를 사용하여 이 두 파일을 결합하려고 하면 아무 일도 일어나지 않습니다. 이는 두 파일의 필드 요소의 대소문자가 다르기 때문입니다. 조인이 이 대소문자 문제를 무시하도록 하려면 -i 명령줄 옵션을 사용하세요.
우리의 경우 명령어는 다음과 같습니다:
join -i file1 file2다음 스크린샷은 명령어가 작동하는 모습을 보여줍니다:

5. 조인이 정렬된 입력을 확인하지 않도록 하는 방법은?
기본적으로 조인 명령어는 제공된 입력이 정렬되어 있는지 여부를 확인하고, 그렇지 않은 경우 보고합니다. 예를 들어, file1의 정보가 정렬되지 않았을 때의 출력은 다음과 같습니다:

이 오류/경고를 없애고 싶다면, –nocheck-order 옵션을 사용하여 이를 수행할 수 있습니다. 다음은 이 옵션이 활성화된 동일한 명령어입니다:

따라서 이번에는 조인 명령어가 정렬된 입력을 확인하지 않았음을 알 수 있습니다.
결론
조인은 이해하기 쉬운 도구는 아닐 수 있지만, 일단 익숙해지면 특정 상황에서 많은 시간을 절약할 수 있습니다. 여기에서 대부분의 명령줄 옵션을 다루었습니다. 이들을 시도해 보시고, 완료한 후에는 나머지 부분을 위해 명령어의 man 페이지를 살펴보세요.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.