본문 바로가기
툴/기타

패턴 검색 및 출력 변환 awk

by ITPro 2012. 7. 18.

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

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

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 영역

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

반응형

' > 기타' 카테고리의 다른 글

암호화 영역 생성 TrueCrypt  (0) 2012.07.18