AWK?
AWK
는 유닉스에서 처음 개발된 일반 스크립트 언어이다. AWK
의 기본 기능은 텍스트 형태로 되어있는 입력 데이터를 행과 단어 별로 처리해 출력하는 것이다.
AWK
는 문자열 데이터와 연관 배열(배열의 인덱스가 숫자가 아닌 임의의 값이 될 수 있는 배열), 정규 표현식을 주로 사용한다. AWK
와 sed가 결합하면 간결하면서도 강력한 스크립팅이 가능하다. AWK
는 유닉스 버전 7에 처음 등장해서 지금까지 사용되는 매우 오래된 도구로, 오늘날에는 거의 모든 유닉스 계열 운영체제에 포함되어 있는 표준 도구로 자리잡았으며 다른 운영체제에서도 사용할 수 있다.
AWK
프로그램은 기본적으로 패턴과 패턴을 처리하는 명령어 짝을 늘여놓은 구조로 이루어져 있다. 입력으로부터 한 줄씩을 읽어서 정규 표현식으로 조건이 맞는지를 검사하고 참으로 판명되면 그 줄에 대해 명령어를 실행하는 형식이다.
AWK를 이용한 응용분야
- 데이터 프로세싱
- 리포트 작성
- 간단한 데이버베이스 구축
AWK 구조
1 |
|
1 |
|
awk는 pattern
들과 action
그리고 연산자
로 이루어져있다.’ action
은 문장으로 이루어져 있거나 상수 하나로도 이루어질 수 있다. 개행 문자나 세미콜론에 의해 분리된 몇 개의 문장이 연속으로 구성될 수 도 있다.
1 |
|
미리 정의된 변수들
변 수 | 내 용 |
---|---|
FILENAME | 현재 처리되고 있는 파일의 이름 |
FS | 입력 필드 분리문자 |
NR | 현재 레코드(행)의 번호 |
NF | 현재 레코드(행)의 필드의 개수 |
OFS | 출력되는 필드의 분리문자 |
AWK 명령어
BEGIN
1 |
|
입력을 읽어들이기 전에 옆에 제시되는 문장을 실행시킨다.
END
1 |
|
입력을 모두 처리한 후, 옆에 제시되는 문장을 실행시킨다.
1 |
|
첫 번째와 세 번째 필드를 출력한다. ($0은 전체를 의미), $1과 $3 사이에는 디폴트로 빈칸 하나로 주어지는 구분자가 들어간다.
1 |
|
위와 같은 출력으로도 사용할 수 있다.
1 |
|
위와 같은 형식으로 파일에 덮어쓰거나 이어 쓸 수 있다.
사용자 정의 함수
C의 경우와 비슷하게 작성된다.
1 |
|
사용은 아래와 같이 사용.
1 |
|
예제
첫 번째 필드의 값을 계속 더하기
1 |
|
입력 파일의 낱말 빈도 계산
1 |
|