awk는 패턴 검색 및 처리를 목적으로 텍스트 형태로 되어있는 데이터를 필드로 구분하여 처리하는 스크립트 언어다.
1. command
awk [옵션] [파일명]
[출력 명령] | awk [옵션]
2. 옵션
특정 문구가 포함된 줄 출력 |
[출력 명령] | awk'/[찾을내용]/' |
2열과 3열 출력 |
[출력 명령] | awk'{print$2,$3}' |
2열과 3열을 붙혀서 출력 |
[출력 명령] | awk'{print$2$3}' |
2열과 3열을 합하여 출력 |
[출력 명령] | awk'{print$2+$3}' |
마지막 열 출력 |
[출력 명령] | awk'{print$NF}' |
필드 수 출력 |
[출력 명령] | awk'{printNF}' |
%문자를 구분자로 활용 |
[출력 명령] | awk-F%[옵션] |
3. 실행 예시
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 3987520 0 3987520 0% /dev
tmpfs 4004384 0 4004384 0% /dev/shm
tmpfs 4004384 9660 3994724 1% /run
tmpfs 4004384 0 4004384 0% /sys/fs/cgroup
/dev/mapper/centos-root 52403200 30937048 21466152 60% /
/dev/sda1 1038336 224956 813380 22% /boot
/dev/mapper/centos-home 43093444 37388 43056056 1% /home
VM 499445756 423949192 75496564 85% /media/sf_VM
tmpfs 800880 28 800852 1% /run/user/0
/dev/sr0 59032 59032 0 100% /run/media/root/VBox_GAs_6.1.10
- 사용할 예문
[root@localhost ~]# df | awk '/tmp/'
devtmpfs 3987520 0 3987520 0% /dev
tmpfs 4004384 0 4004384 0% /dev/shm
tmpfs 4004384 9660 3994724 1% /run
tmpfs 4004384 0 4004384 0% /sys/fs/cgroup
tmpfs 800880 28 800852 1% /run/user/0
- tmp 문자가 포함된 줄 출력
[root@localhost ~]# df | awk '{print $2, $3}'
1K-blocks Used
3987520 0
4004384 0
4004384 9660
4004384 0
52403200 30937052
1038336 224956
43093444 37388
499445756 423949352
800880 28
59032 59032
- 각 줄의 2열과 3열을 출력
[root@localhost ~]# df | awk '{print $2 $3}'
1K-blocksUsed
39875200
40043840
40043849660
40043840
5240320030937052
1038336224956
4309344437388
499445756423949780
80088028
5903259032
- 각 줄의 2열과 3열을 붙여서 출력
[root@localhost ~]# df | awk '/tmp/' | awk '{print $2+$3}'
3987520
4004384
4014044
4004384
800908
- tmp 문자가 포함된 줄의 2열과 3열의 합 출력
[root@localhost ~]# df | awk '{print $NF}'
on
/dev
/dev/shm
/run
/sys/fs/cgroup
/
/boot
/home
/media/sf_VM
/run/user/0
/run/media/root/VBox_GAs_6.1.10
- 각줄의 마지막 열 출력
[root@localhost ~]# df | awk '{ print NF}'
7
6
6
6
6
6
6
6
6
6
6
- 각 줄의 필드수 출력
[root@localhost ~]# df | awk -F% '{print $NF}'
Mounted on
/dev
/dev/shm
/run
/sys/fs/cgroup
/
/boot
/home
/media/sf_VM
/run/user/0
/run/media/root/VBox_GAs_6.1.10
- %를 구분자로 활용하여 각 줄의 마지막 열 출력
- 끝 -