awk는 입력으로부터 한 줄씩 읽어서 정규표현식으로 조건이 맞는지를 검사하고, 참으로 판명되면 그 줄에 대한 명령어를 실행하는 형식으로 동작한다. 기본적인 사용형식은 다음과 같다.
$ awk [options] 'pattern{action}' filename
옵션은 다음과 같다.
-F 필드구분자: 필드구분자를 지정한다. 기본 구분자는 공백이다.
-f 파일명: 스크립트 파일을 불러온다.
패턴부분은 다음과 같은 방식으로 정의해줄 수 있다.
BEGIN: 입력파일을 읽어들이기 전에 제시되는 문자를 실행시킬 때 지정
END: awk가 모든 입력을 처리한 후 제시되는 문자를 실행시킬 때 지정
/문자열/: 문자열과 일치하는 라인을 찾아 action을 실
액션부분에는 보통 print가 위치하며, 다양한 시스템변수도 갖고 있다.
$ awk '{print 시스템변수}' filename
FILENAME | 현재 처리중인 파일명
FS | 필드 구분자로 디폴트는 공백
RS | 레코드 구분자로 디폴트는 새로운 라인
NF | 현재 레코드의 필드 개수
NR | 현재 레코드의 번호
OFS | 출력할 때 사용하는 FS
ORS | 출력할 때 사용하는 RS
$0 | 입력 레코드의 전체
$n | 입력 레코드의 n번째 필드
df 명령을 이용해 출력되는 내용 중 두번째 필드가 5000이상인 행을 출력하라.
$ df | awk '$2 >= 5000 {print}'