awk(한줄씩 읽어서 검사하고 참이면 실행)

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