[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 편이 됩니다.