"리눅스 awk"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-source +syntaxhighlight))
 
10번째 줄: 10번째 줄:


==문법==
==문법==
<source lang="bash">
<syntaxhighlight lang="bash">
*awk 'pattern'
*awk 'pattern'
</source>
</syntaxhighlight>
<source lang="bash">
<syntaxhighlight lang="bash">
*awk '{action}'
*awk '{action}'
</source>
</syntaxhighlight>
<source lang="bash">
<syntaxhighlight lang="bash">
*awk 'pattern {action}'
*awk 'pattern {action}'
</source>
</syntaxhighlight>


==변수==
==변수==
33번째 줄: 33번째 줄:
* date에서 원하는 필드만 출력하는 예시
* date에서 원하는 필드만 출력하는 예시
{{소스헤더|현재 시간 출력}}
{{소스헤더|현재 시간 출력}}
<source lang="console">
<syntaxhighlight lang="console">
john@zetawiki:~$ date
john@zetawiki:~$ date
Wed Jul 20 21:59:52 KST 2016
Wed Jul 20 21:59:52 KST 2016
</source>
</syntaxhighlight>
{{소스헤더|현재 시간에서 2번째 필드인 월을 출력}}
{{소스헤더|현재 시간에서 2번째 필드인 월을 출력}}
<source lang="console">
<syntaxhighlight lang="console">
john@zetawiki:~$ date | awk '{print $2}'
john@zetawiki:~$ date | awk '{print $2}'
Jul
Jul
</source>
</syntaxhighlight>


==원하는 필드 출력 예시2==
==원하는 필드 출력 예시2==
<source lang='console'>
<syntaxhighlight lang='console'>
[root@zetawiki ~]# echo | awk '{ print 3+2 }'
[root@zetawiki ~]# echo | awk '{ print 3+2 }'
5
5
</source>
</syntaxhighlight>
<source lang='console'>
<syntaxhighlight lang='console'>
[root@zetawiki ~]# echo | awk '{ print "Hello, world!" }'
[root@zetawiki ~]# echo | awk '{ print "Hello, world!" }'
Hello, world!
Hello, world!
</source>
</syntaxhighlight>
<source lang='console'>
<syntaxhighlight lang='console'>
[root@zetawiki ~]# cat /etc/passwd | grep apache
[root@zetawiki ~]# cat /etc/passwd | grep apache
apache:x:48:48:Apache:/var/www:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
[root@zetawiki ~]# cat /etc/passwd | awk /apache/
[root@zetawiki ~]# cat /etc/passwd | awk /apache/
apache:x:48:48:Apache:/var/www:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
</source>
</syntaxhighlight>


==필드 구분자를 통한 출력 예시==
==필드 구분자를 통한 출력 예시==
*공백을 필드 구분자로 사용하여 필드를 나눈 후 9번째 필드 출력
*공백을 필드 구분자로 사용하여 필드를 나눈 후 9번째 필드 출력
<source lang="console">
<syntaxhighlight lang="console">
john@zetawiki:~$ ll
john@zetawiki:~$ ll
total 24
total 24
78번째 줄: 78번째 줄:
c.c
c.c
d/
d/
</source>
</syntaxhighlight>
;→ 공백을 필드 구분자로 사용하여 필드를 나눈 후 앞에서 9번째 필드를 출력해줌
;→ 공백을 필드 구분자로 사용하여 필드를 나눈 후 앞에서 9번째 필드를 출력해줌



2020년 11월 2일 (월) 02:39 기준 최신판

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 }}