awk programming

Linux/awk 2013. 4. 21. 12:01 |


awk

Bash Shell 에서 필수적인 툴이다.


awk는 데이터를 조작하고 리포트를 생성하기 위해 사용하는 언어이다. 리눅스에서 사용하는 awk는 GNU 버전의 gawk 로 심볼릭 링크되어 있다.


awk에서는 간단한 연산자를 명령라인에서 사용할 수 있으며, 큰 프로그램을 위하여 사용될 수 있다. 

awk는 데이터를 조작할 수 있기 때문에 쉘 스크립트에서 사용되는 필수 툴이며, 작은 데이터베이스를 관하기 위해서도 필수이다.


※ awk 명령에서 END 블록을 사용할 경우에는 반드시 아규먼트 파일명을 적어주어야 한다. BEGIN 블록만 사용할 경우에는 아규먼트 파일명을 적지 않아도 동작한다.



awk Programming 

awk 프로그래밍은 awk 명령어를 입력한 다음, 작은 따옴표로 둘러싸인 패턴이나 액션을 입력하고 마지막으로 입력 파일을 입력한다. 만약 입력 파일을 지정하지 않으면 키보드 입력에 의한 표준 입력(stdin)으로부터 입력을 받게 된다. 

그리고 awk는 입력된 라인들의 데이터들을 공백 또는 탭을 기주능로 분리하여 $1부터 시작하는 각각의 필드 변수로 분리하여 인식한다.


파일로부터의 입력

awk 'pattern' filename

awk '{action}' filename

awk 'pattern {action}' filename






명령어로부터의 입력

명령어로부터 입력으 받기 위해서 '|' 파이프를 사용할 수 있다.

command | awk 'pattern'

command | awk '{action}'

command | awk 'pattern {action}'



df 명령어는 하드 디스크 용량 상황을 볼 수 있는 명령인데, df 명령의 결과를 보면 네 번째 필드에 사용할 수 있는 용량이 1kbyte block 단위로 표시된다. 네 번째 필드의 값이 10000000 보다 큰 라인을 출력하기 위해 df | awk '$4 > 10000000' 명령을 실행했기 때문에 위와 같이 결과가 출력된다. 

이와 같이 분리자를 지정하지 않은 경우에는 기본 분리자로 공백을 사용한다.


'Linux > awk' 카테고리의 다른 글

match 연산자  (0) 2013.04.21
필드 분리자, 액션, 정규표현식, 메타문자  (0) 2013.04.21
awk 동작원리, print, printf, OFMT 변수  (0) 2013.04.21
Posted by scii
: