제가 사용한 comm 버전은 6.10 입니다.
$ comm --version
comm (GNU coreutils) 6.10
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard Stallman and David MacKenzie.
comm (GNU coreutils) 6.10
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard Stallman and David MacKenzie.
comm 은 간단히 설명하자면 newline (\n)으로 구분된 텍스트 데이터 파일을 비교하는 기능을 합니다. 조건은 비교할 파일들이 정렬되어 있어야 한다는 것입니다. (sort 등으로)
a 파일내용
1
2
3
4
5
6
2
3
4
5
6
b 파일내용
5
6
7
8
9
0
6
7
8
9
0
먼저 comm 기본적인 사용결과입니다.
a 에만 존재하는 내용이 가장 왼쪽, 둘 모두에 있는 내용이 가장 오른쪽, b 에만 존재하는 내용이 가운데의 순서로 결과가 출력됩니다.
$ comm a b
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
comm 에는 세가지 옵션이 있습니다. 1, 2,3
먼저 옵션 1 입니다. b에 속한 내용이 중복된 것, b에만 있는 것 순서로 출력됩니다.
$ comm -1 a b
5
6
7
8
9
0
5
6
7
8
9
0
옵션 2는 a에 속한 내용이 a에만 있는 것, 중복된 것 순서로 출력됩니다.
joo8111@joo8111-desktop:~/Documents/etc/learn_shell$ comm -2 a b
1
2
3
4
5
6
1
2
3
4
5
6
옵션 3은 a, b 각자에만 속한 것들을 출력합니다.
joo8111@joo8111-desktop:~/Documents/etc/learn_shell$ comm -3 a b
1
2
3
4
7
8
9
0
1
2
3
4
7
8
9
0
여러가지 옵션을 섞어 쓸 수 있습니다.
1과 3을 쓰면 1 && 3 이라고 할 수 있습니다. b에만 속한 것이 출력됩니다.
joo8111@joo8111-desktop:~/Documents/etc/learn_shell$ comm -13 a b
7
8
9
0
7
8
9
0
2와 3을 쓰면 a에만 속한 것이 출력됩니다.
joo8111@joo8111-desktop:~/Documents/etc/learn_shell$ comm -23 a b
1
2
3
4
1
2
3
4

댓글을 달아 주세요
ㅎㅎㅎ.. 이런 글도 쓰시는 구나..
2008/09/25 22:27 [ ADDR : EDIT/ DEL : REPLY ]예전에 알았던 내용이면서 왜 글 쓴 건 최근이죠?
밀리지 말고 부지런히 글 안써야 되는데 안그러는구나? ㅎㅎㅎ
부지런히 글 안써야 되는데 안그런다는건... ㅋㅋ
2008/09/26 02:23 [ ADDR : EDIT/ DEL ]맨날 까먹어서 안 잊어버리기 위해서 겸사겸사 쓴거에요.