[shell] awk

2. 시스템 관리 명령어[2] –  awk

awk 는 grep 과 같이 출력된 문장에서 필요한 부분한 걸려내는 필터역활을 하는

명령어의 일종입니다. 사용하기에 따라서 매우 유용하지요..

[root@zzang911 /]# ls -al

drwxr-xr-x    2 root     root            0 11월  3 10:16 misc/

drwxr-xr-x    4 root     root         4096  8월  9 00:41 mnt/

drwxr-xr-x    2 root     root         4096  8월 24  1999 opt/

dr-xr-xr-x  113 root     root            0 11월  3 10:16 proc/

위의 출력문은 tab (공백)으로 각 컬럼을 구분하는데 다음과 같이 하면 원하는 컬럼

값만을 선택하서 출력이 가능합니다.

[root@zzang911 /]# ls -al | awk ‘{print $1 $5 $9}’

drwxrwx— 4096 root/

drwxr-xr-x 4096 sbin/

drwxr-xr-x 4096 temp/

drwxr-xr-x 4096 tftpboot/

drwxrwxrwt 4096 tmp/

drwxr-xr-x 4096 usr/

drwxr-xr-x 4096 var/

위와 같이 1,5,9 번째 컬럼값만 출력이 되어집니다. 후후후

이밖에 awk 는 연산 기능을 가지고 있다.

# find /home/design -user design -ls | \\

awk ‘{sum+=$7}; END {print “User design total disk use = ” sum }’

User design total disk use = 86072036

이와 같이 design 권한의 파일들의 크기를 합친값을 보여준다.

이 명령라인은 find 로 검색한 파일을 ls -al 형식으로 출력한후 여기서

바이트 수를 가지고 있는 7번째 열의 합계를 누적한다. 그리고 마지막줄

에 최종 결과값을 출력한다. 이밖에 awk 는 평균값도 구할수 있는데…

END 절의 sum 를 sum/NR 로 대체하면 구할수 있다. NR 은 awk 내부 변수

로서 현재까지의 입력 라인수를 갖는다.

다음엔 find 편이 됩니다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.