패턴 검색 및 출력 변환 awk

패턴 검색 및 출력 내용 변환에 사용되는 도구이다.

ex) awk -F: ‘BEGIN{print “start AWK”} /root/{if($3 == 0){print $7}} END{print “end AWK\n”}’ /etc/passwd

/etc/passwd‘:’로 문자열을 쪼개고 “start AWK”라는 문자열을 출력한 뒤 root라는 문자열을 포함하고 있는 행에서 3번째 필드가 0이라면 7번째 필드 값을 출력하고 출력이 끝나면 마지막으로 “end AWK”를 출력하고 종료한다.

주요 옵션

옵션

설명

-F

field

문자열을 나눌 기준을 정한다.

1. BEGIN 영역

awk를 실행하면 가장 먼저 처리되는 영역이다.

이 영역에서는 레코드는 읽어 들이지 않는다.

2. Main 영역

// 사이에 읽어 들일 문자열 또는 정규식이 들어가고 {} 사이에 처리 코드가 들어간다.

이 영역에서는 if, for, while, print 등의 기본적인 조건문을 사용할 수 있다.

미리 정의된 변수

변수명

설명

FILENAME

입력 파일명

FS

입력 필드 분리자 (Default : 공백)

RS

입력 레코드 분리자 (Default : 개행문자)

OFS

출력 필드 분리자 (Default : 공백)

ORS

출력 레코드 분리자 (Default : 개행문자)

$0~$n

분리된 문자열 필드은 $1~$n 값을 가지며 $0은 레코드의 전체 문자열을 의미한다.

NF

현재 레코드의 필드 수

NR

현재 처리되고 있는 레코드 수

3. END 영역

모든 레코드에 대한 처리가 끝난 뒤 실행되는 영역이다.

댓글 남기기

바로가기