bionote.net


[Linux] 똑똑하게 텍스트 파일을 합쳐주는 join 명령어


join 명령어는 예전에 올렸던 paste 명령어와 유사한 기능을 하지만 조금 똑똑하게(?) 일을 해준다. 두 파일을 합칠 때 공통되는 컬럼을 한번씩만 출력되도록 합쳐주기 때문에 RDB처럼 써먹을 수 있다. 단, 합치려는 파일들이 미리 동일한 순서로 정렬되어 있어야한다는 점을 주의하여야 하겠다. 사용법은 다음과 같다.

]$ cat salary.txt
Kim 100
Lee 80
Jeong 80
]$ cat skill.txt
Kim CPP
Lee PHP
Jeong Java
]$ join salary.txt skill.txt
Kim 100 CPP
Lee 80 PHP
Jeong 80 Java

"-o" 옵션을 사용하면 출력포맷을 지정할 수 있다. 출력포맷은 컴마(,)로 구분해서 "FILENUM.FIELD" 형식으로 입력해주면 된다. 예를 들어 위의 예제에서 salary 값과 skill만을 출력하고 싶다면 아래와 같이 하면 된다.

]$ join salary.txt skill.txt -o 1.2,2.2
100 CPP
80 PHP
80 Java

"-o 2.2,1.2" 옵션을 주면 순서를 바꾸는 것도 당연히 가능하다.

2006/05/18 03:14 2006/05/18 03:14
top