네트워크 엔지니어 & 개발자 로엘이

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

- %를 구분자로 활용하여 각 줄의 마지막 열 출력

 

- 끝 -

728x90
반응형
250x250

공유하기

facebook twitter kakaoTalk kakaostory naver band