JOIN(1)

명칭
join - 리레셔널 데이터 베이스의 조작

서식
join [ -a file_number | -v file_number] [-e string] [-o list] [-t char] [-1 field] [-2 field] file1 file2

해설
join 유틸리티는, 지정된 파일에 대해 “equality join” (으)로 불리는, 각 파일의 동일한 부분을 결합하는 조작을 베풀어 결과를 표준 출력에 출력합니다.

비교는, 각각의 파일의 “join field” (으)로 불리는 필드에서 행합니다. 디폴트에서는, 각 행의 최초의 필드가 사용됩니다. file1 (와)과 file2 중(안)에서, “join field” 하지만 일치한 행이 조가 되어, 1 행으로 출력됩니다. join field 와 file1 중 나머지의 필드, 그 후, file2 중 나머지의 필드가 1 행이 되어 출력됩니다.

필드의 구 절은, 디폴트에서는 탭이나 공백 캐릭터입니다. 복수의 탭이나 공백 하지만 연결되고 있어도, 1 개의 구 절로 간주해져 읽기시에 이것들은 무시됩니다. 출력시의 각 필드의 구 절은, 디폴트에서는 공백 1 캐릭터입니다.

파일과 필드의 번호에 관계되어, 많은 옵션이 있습니다. 이러한 번호는 항상, 1 으로부터 시작됩니다. 즉, 명령행의 최초의 파일 (은)는 파일 번호 1 번이며, 각 행의 최초의 필드는, 필드 번호 1 차례가 됩니다.

-a file_number
    디폴트의 출력에 가세해, file_number 그리고 지정한 파일에 관해서, 동일 필드가 없었던 행을 표시합니다.

-e string
    출력시에, 하늘의 필드가 있으면 string 그리고 지정한 캐릭터 라인에 옮겨놓습니다.

-o list
    join 의 처리해 출력해야 할 행에 관계되어, 디폴트의 순서가 아니고, list 그리고 지정한 순서로 각 파일의 각 필드를 출력 하도록(듯이) 합니다. list 의 각 요소는, ‘file_number.field’ 또는 ‘0’ (제로) 그리고 나타내, 요소간은, 콤마 (“,”) 인가 공백에서 단락짓습니다 (공백에서 단락짓는 경우는, 쉘이 요소를 다른 파라미터 로 분해하지 않게 쿼-팅 하는지, 복수의 -o 옵션을 사용합니다).

-t char
    입력 및 출력에 사용하는 필드의 구 절로서 char 그리고 지정한 캐릭터를 사용하도록(듯이) 합니다. 1행 중(안)에서 출현한 모든 char 하지만 유효합니다.

-v file_number
    file_number 그리고 지정한 파일 번호의 파일에 관해서, join 처리로 동일 필드가 발견되지 않았던 행만을 표시한다 같게 합니다. -v 1 (와)과 -v 2 (을)를 동시에 지정해도 괜찮습니다.

-1 field
    파일 1 의 “join field” (을)를 field 그리고 지정한 번호의 필드로 합니다.

-2 field
    파일 2 의 “join field” (을)를 field 그리고 지정한 번호의 필드로 합니다.

디폴트의 필드 단락 캐릭터가 사용되는 경우, 결합의 대상이 되는 파일은, 결합해야 할 필드를 키로서 sort(1) 에 -b 옵션을 붙인 것으로 정렬되어 있지 않으면 안됩니다. 그렇게 하지 않으면 join (은)는 매치 하는 필드를 일부 밖에 표시하지 않는 것이 있습니다. -t 옵션으로 필드 단락 캐릭터가 지정되어 있는 경우, -b 옵션 없음의 sort(1) 그리고 정렬되어 있지 않으면 안됩니다.

file1 또는 file2 중 다른 한쪽이 “-” 에서 만났을 경우에는, 표준 입력이 사용됩니다.

진단

호환성
게다가 낡은 버젼의 join (와)과의 호환이기 때문에, 다음의 옵션도 사용할 수 있습니다.

-a  디폴트의 출력에 가세해 file1 와 file2 의 각각으로, 동일 필드 하지만 없는 행을 표시합니다.

-j1 field
    파일 1의 ``join field''를 field 그리고 지정한 번호의 필드로 합니다.

-j2 field
    파일 2의 ``join field''를 field 그리고 지정한 번호의 필드로 합니다.

-j field
    file1 와 file2 의 ``join field''를 field 그리고 지정한 번호의 필드로 합니다.

-o list ...
    역사적인 join 의 실장에서는 -o 옵션에 복수의 인수를 허가하고 있었습니다. 이러한 인수는, 현재의 -o 옵션으로 설명한 것과 같다 “file_number.field_number” 그렇다고 하는 형식이었습니다. 그러나, 이 방법에서는 ‘1.2’ (이)라고 명명된 파일이 존재하면(자), 분명하게 곤란을 일으킵니다.

이러한 옵션은, 수정을 하고 싶지 않은 것 같은 매우 낡은 셸 스크립트 (을) 위해서만 준비되어 있습니다. 이러한 옵션은, 사용해야 하는 것이 아닙니다.

표준
join 명령은 p1003.1-2001 호환입니다.

관련 항목
awk(1), comm(1), paste(1), sort(1), uniq(1)