파일에서 선택된 열(column)을 삭제하는 필터

사용법 : colrm [시작열] [종료열] 

colrm 명령어의 인자로 하나의 숫자이면 이는 지정한 숫자의 시작부터 끝까지의 행을 삭제한다. 만일 시작 열과 종료 열을 지정하면, 지정한 시작 열과 종료 열 까지의 행을 삭제할 것이다.
예제를 통해 살펴보자. uname 명령은 시스템 정보를 출력하게 된다 이 중 첫 번째는 시스템의 타입을 두 번째는 시스템 호스트 이름을 출력한다.
colrm 명령으로 uname 으로 볼 수 있는 시스템 호스트 이름만을 뽑아내 보자.
uname 으로 나온 호스트명은 ns.linuxroot.co.kr이다.

# uname -a 
Linux ns.linuxroot.co.kr 2.4.20-28.7 #1 Thu Dec 18 11:31:59 EST 2003 i686 unknown 

앞줄의 시스템 타입을 colrm 1 6 명령으로 삭제해 보자. 물론 1은 시작열이며 6은 종료열이 된다.

# uname -a | colrm 1 6 
ns.linuxroot.co.kr 2.4.20-28.7 #1 Thu Dec 18 11:31:59 EST 2003 i686 unknown 

그럼 호스트 명 끝의 모든 정보를 필터링하기 위해서는 19열 이후는 모두 삭제하면된다.

# uname -a | colrm 1 6 | colrm 19 
ns.linuxroot.co.kr 
2005/06/21 20:47 2005/06/21 20:47
텍스트 파일의 내용을 가로로 보기 좋게 정렬하여 보여주는 명령어

사용법 : column [옵션] [파일...] 
-c num : 전체 가로 폭을 columns 값으로 해서 정렬한다. 
-s char : -t 옵션을 위해 가로칸 조사에 사용될 문자를 지정한다. 
-t : 입력되는 내용의 가로칸 갯수를 조사하고, 그것을 바탕으로 출력 양식을 정한다. 입력되는 내용의 가로칸 갯수는 공백문자로 구분한다. 
-x : 가로로 먼저 나열하고, 다음 세로로 나열한다. 

column 명령어는 칼럼을 형식화하는 명령어이다. 먼저 세로로 나열하고 그 다음 가로로 나열한다. 텍스트의 결과에 적당한 탭 구분자를 넣어 보기 좋게 한다.
다음은 ls -l 명령으로 출력되어 나오는 현재 디렉토리의 내의 파일 목록을 이해하기 쉽게 하기 위해 열제목을 붙여준 형태 이다. sed 1d 명령으로 합계부분을 모두 삭제하고 printf 명령으로 각각의 필드에 대한 열 제목을 아래와 같이 지정하였다. 이를 column -t 옵션으로 받아 입력되는 내용의 가로칸 갯수를 조사하여 출력 양식을 지정하게 하였다.

# (printf "PERM LINKS OWNER GROUP SIZE MONTH DAY HH:MM/ YEAR NAME\n" ;ls -l | sed 1d) | column -t 
PERM        LINKS  OWNER  GROUP  SIZE     MONTH  DAY  HH:MM/  YEAR                NAME 
-rw-r--r--  1      root   root   1169     Nov    12   00:17   anaconda-ks.cfg 
-rw-r--r--  1      root   root   13174    Nov    12   00:17   install.log 
-rw-r--r--  1      root   root   0        Nov    12   00:06   install.log.syslog 
drwx------  2      root   root   4096     Jan    30   01:06   Mail 
-rw-------  1      root   root   1852     Feb    3    13:52   mbox 
-rw-r--r--  1      root   root   3404859  Mar    19   22:09   rrdtool1 
-rw-r--r--  1      root   root   3406508  Mar    19   22:10   rrdtool2 
-rw-r--r--  1      root   root   1909     Mar    19   22:20   rrdtool-install 
2005/06/21 20:46 2005/06/21 20:46
정렬된 두 파일을 한 줄씩 비교하는 명령

사용법 : comm [옵션] 파일1 파일2 
-1 : 파일2를 기준으로 파일1과 비교하여 같지 않은 부분을 보여주고, 다음 열에 같은 부분을 보여준다. 
-2 : 파일1을 기준으로 파일2와 비교하여 같지 않은 부분을 보여주고, 다음 열에 같은 부분을 보여준다. 
-3 : 파일1과 파일2를 비교하여 첫 번째 열에 파일1의 유일한 부분과, 두 번째 열에 파일2에 유일한 내용을 보여준다. 
--help : 도움말을 보여준다. 
--version : 버전 정보를 보여준다. 

comm 명령어는 다목적 파일 비교 유틸리티로 이 명령을 수행하기 전에 비교할 파일이 정렬되어 있어야 정확하게 결과를 얻을 수 있다. 예제를 통해 살펴보자.
먼저, test1 과 test2 파일을 sort명령으로 정렬하자.

# sort < test1 > test1 
# cat test1 
1 
3 
5 
6 
7 
# sort < test2 > test2 
# cat comm2 
2 
4 
6 
7 
8 
9 

-1 옵션을 사용한 결과이다. 파일2를 기준으로 파일1과 같지 않은 부분은 첫 번째 열에, 같은 내용이 2번째 열에 보여준다.

# comm -1 comm1 comm2 
2 
4 
        6 
        7 
8 
9 

-2 옵션을 사용해 보자. 파일1을 기준으로 첫 번째 열에 파일2와 같지 않은 부분을 보여주고, 2번째 열에 같은 내용을 보여준다.
# comm -2 comm1 comm2 
1 
3 
5 
        6 
        7 

-12 옵션을 이용하여 test1파일과 test2파일의 공통된 내용을 보여주는데, 이를 uniq명령으로 열에 중복되지 않는 내용으로 test3파일을 생성한다.
# comm -12 test1 test2 | uniq > test3 
2005/06/21 20:46 2005/06/21 20:46