awk (A.V.Aho, P.J. Weinberger, B. Kernigham)
- awk란 이름은 이 유틸리티를 작성한 A.V.Aho, P.J. Weinberger, B. Kernigham의 머리글자에서 따온 것이다.
- awk 명령어는 패턴의 검색과 조작을 주목적으로 만들어진 명령어이다.
awk [-옵션] pattern {action} 파일
옵션 | 설명 |
---|
-F | 필드구분자를 지정할 때 사용하며, 기본 필드구분자는 공백이다. |
-f | 스크립트파일을 불러온다. |
pattern
패 턴 | 내 용 |
---|
BEGIN | 입력화일을 읽어들이기 전에 옆에 제시되는 문자을 실행시키도록 한다. |
END | awk가 모든 입력을 처리한 후, 옆에 제시되는 문장을 실행시키도록 한다. |
expression | 식을 평가한 후 이 식이 참, 즉 non-zero이거나 non-null인 경우 문장을 실행한다. |
/re/ | 정규식과 일치하는 문자열을 포함하고 있는 라인에서 문장을 실행한다. |
compound-pattern | 복합패턴이라는 것으로 &&(and), ||(or) , !(not) 그리고 괄호에 의해 연결시킨 것이다. expression의 경우와 마찬가지로 복합 패턴도 참인 경우의 문장을 실행시킨다. |
pattern1, pattern2 | 이러한 패턴을 범위 패턴이라한다. 현재 처리되고 있는 라인이 pattern1과 일치되고, 다음에 따라오 는 라인 중 임의의 라인이 pattern2와 일치할 때, 범위 패턴은 두 라인 사이의 각 라인과 일치한다. |
action
액션은 문장(statements)으로 이루어져 있다. 액션은 간단하게 상수 하나로 이루어질 수도 있고, 개행 문자나 세미콜론(;)에 의해 분리된 몇 개의 문장의 연속으로 구성될 수도 있다.
- expressions
- print expression-list
- printf(format, expression-list)
- if (expression) statement
- if (expression) statement else statement
- while (expression) statement
- for (expression; expression; expression) statement
- for (variable in array) statement
- do statement while (expression)
- break
- continue
- next
- exit
- exit expression
- {statement}
연산자
연 산 자 | 내용 |
---|
= += -= *= /= %= | 배정(assignment)연산자 |
+ - * / % ++ -- | 산술 연산자 |
|| && ! | 논리 연산자(|| = OR, && = AND, ! = NOT) |
> >= < <= == != | 비교 연산자 |
v ~p | 변수 V가 패턴 P에 부합되면 참 |
v !~p | 변수 V가 패턴 P에 부합되지 않으면 참 |
미리 정의된 변수
변 수 | 내 용 |
---|
FILENAME | 현재 처리되고 있는 입력 파일의 이름 |
FS | 입력 필드 분리문자 |
NR | 현재 레코드(행)의 번호 |
NF | 현재 레코드(행)의 필드의 갯수 |
OFS | 출력되는 필드의 분리문자 |
출처 - Dreamy House