리눅스 awk

1 개요[ | ]

awk, gawk
오크
/bin/awk
/bin/gawk
/usr/bin/awk

2 문법[ | ]

*awk 'pattern'
*awk '{action}'
*awk 'pattern {action}'

3 변수[ | ]

  • 필드값 변수
$0 → 모든 필드 (행의 값 그대로)
$1 → 첫번째 필드
$2 → 두번째 필드
$(NF-1) → 마지막 전 필드
$NF → 마지막 필드

4 원하는 필드 출력 예시1[ | ]

  • date에서 원하는 필드만 출력하는 예시
현재 시간 출력
john@zetawiki:~$ date
Wed Jul 20 21:59:52 KST 2016
현재 시간에서 2번째 필드인 월을 출력
john@zetawiki:~$ date | awk '{print $2}'
Jul

5 원하는 필드 출력 예시2[ | ]

[root@zetawiki ~]# echo | awk '{ print 3+2 }'
5
[root@zetawiki ~]# echo | awk '{ print "Hello, world!" }'
Hello, world!
[root@zetawiki ~]# cat /etc/passwd | grep apache
apache:x:48:48:Apache:/var/www:/sbin/nologin
[root@zetawiki ~]# cat /etc/passwd | awk /apache/
apache:x:48:48:Apache:/var/www:/sbin/nologin

6 필드 구분자를 통한 출력 예시[ | ]

  • 공백을 필드 구분자로 사용하여 필드를 나눈 후 9번째 필드 출력
john@zetawiki:~$ ll
total 24
drwxrwxr-x  3 john john 4096 Feb 14 14:06 ./
drwxr-xr-x 12 john john 4096 Feb 14 14:06 ../
-rw-rw-r--  1 john john   69 Feb 14 13:52 a.c
-rw-rw-r--  1 john john   19 Feb 14 14:06 b.c
-rw-rw-r--  1 john john   38 Feb 14 14:06 c.c
drwxrwxr-x  2 john john 4096 Feb 14 13:53 d/
john@zetawiki:~$ ll | awk -F " " '{print $9}'

./
../
a.c
b.c
c.c
d/
→ 공백을 필드 구분자로 사용하여 필드를 나눈 후 앞에서 9번째 필드를 출력해줌

7 같이 보기[ | ]

8 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}