Untitled Document











현재 하고 있는 일들

0
Total 37 articles, 2 pages/ current page is 1
   

 

  View Articles
Name  
   권민정 
Homepage  
   http://nppb.korea.ac.kr/~mjkwn
Subject  
   AWK란?
AWK의 소개

AWK는 패턴 스캐닝언어로서 1977년에 Alfred
Aho, Peter Weinberger, Brain Kerninghan에
의해 만들어진 language이다.
파일 수정이 용이하며 데이터베이스를 검색하고
변형하는데도 유용하다.
데이터 프로세싱, 리포트 작성, 간단한 데이터
베이스 구축등에 많이 응용한다.
perl 또한 awk의 기반을 두고 만들어졌다.


1) awk란?


*awk의 개념.

- awk (Aho, Weinberger, Kernighan )는 이 것을 작성한 사람들의 머리글자

- awk는 일종의 프로그래밍 언어/패턴의 검색과 조작.

- 파일의 각 라인에서 필드(field)를 인식할 수 있는 패턴 매칭 기능


* awk의 응용분야.

- 데이터 프로세싱, 리포트 작성, 간단한 데이터 베이스 구축 등...


* awk를 이용한 작업.

- 프로그램의 입력 파일이 특정한 형식에 맞게 이루어져 있는지 검사.

- 출력화일을 처리하여 리포트를 만들어 냄.

- 다른 프로그램의 입력 형식에 맞게 변환하는 작업에 이용.


2) awk 프로그램의 구조 및 실행.


* awk의 구조.

- awk [option] [files]

- awk -f pattern-action-file 파일이름.

*awk의 pattern.  패 턴
내 용

BEGIN
입력화일을 읽어들이기 전에 옆에 제시되는 문자를 실행.

END
awk가 모든 입력을 처리한 후, 옆에 제시되는 문장을 실행.

expression
식을 평가한 후 이 식이 참, 즉 non-zero이거나 non-null인 경우 문장을 실행.

/regular/
정규식과 일치하는 문자열을 포함한 라인에서 문장을 실행.

compound-pattern
복합패턴이라는 것으로 &&(and), ||(or), !(not) 그리고 괄호에 의해 연결시킨 것이다. expression의 경우와 마찬가지로 복합 패턴도 참인 경우의 문장을 실행시킨다.

pattern1, pattern2
이러한 패턴을 범위 패턴이라 한다. 현재 처리되고 있는 라인이 pattern1과 일치되고, 다음에 따라오는 라인 중 임의의 라인이 pattern2와 일치할 때, 범위 패턴은 두 라인 사이의 각 라인과 일치한다.






* awk의 연산자.  연 산 자
내 용

= += -= *= /= %=
배정(assignment)연산자

+ - * / % ++ --
산술 연산자

|| && !
논리 연산자(|| = OR, && = AND, ! = NOT)

> >= < <= == !=
비교 연산자

v ~p
변수 V가 패턴 P에 부합되면 참

v !~p
변수 V가 패턴 P에 부합되지 않으면 참






④ awk에서 미리 정의된 몇 가지 변수 및 내용.

- awk -Fc [-f fileName] 'Program' {variable=value}* {fileName}*

. Fc 입력 줄의 항목 구분자를 c로 정함. (default: tab이나 공백).

. -f fileName : awk 프로그램을 파일로 만들었을 때 이를 지정함.

. 'program' : awk 명령어 안에 awk 프로그램을 직접 기록한 경우임.

. {variable=value}* : 프로그램을 위한 변수 치환.

. {fileName}* : 입력 줄을 표준 입력이 아닌 지정된 파일에서 받아들임.

- 입력 줄의 항목 접근.

. -$1 (첫 번째 항목), $2 (두 번째 항목).....

. -$0 (줄 전체)

. FS : 입력 필드 분리문자.

. 내장 변수 NF (현재의 입력 줄의 항목 개수 ), $NF (마지막 항목).

. 내장 변수 NR (현재의 입력 줄의 줄 번호).

. 내장 변수 FILENAME (입력 파일 이름).

. OFS : 출력되는 필드의 분리문자.



    
박우진 Perl Script의 기반이 되는 언어이기도 하죠.. ^^ 2003/02/28  

 


Prev
   References to Beginning Tcl

박우진
Next
   쉘 스크립트 개념잡기 2

권민정


Copyright 1999-2022 Zeroboard / skin by madpark