# 미리 정의된 변수.
#FILENAME 현재 처리되고 있는 입력 파일의 이름
#FS 입력 필드 분리문자
#NR 현재 레코드(행)의 번호
#NF 현재 레코드(행)의 필드의 갯수
#OFS출력되는 필드의 분리문자
#, 는 space 출력. 큰 따옴표 속에 있으면 그냥 , 출력.
#ORS 출력 레코드 구분자(디폴트는 newline)
#RS 레코드 구분자(디폴트는 newline)
# 4번째 인자가 SR 인 경우 해당 행 출력.
# {} 생략의 경우 {print $0} 와 같다.
#awk -F',' '$4 == SR {print $0}' sample.DAT
#awk -F',' '$4 == SR' sample.DAT
# 행의 필드 개수, 첫번째 필드, 마지막 필드 출력.
#awk -F',' '{print NF, $1, $NF}' sample.DAT
# 2번째 인자가 001 으로 끝나는 data 를 001txt 파일에 저장.
# awk -F',' -f text.awk sample.DAT
#{
# if($2 ~ /001$/) printf "%s\n", $0 > "001.txt"
#}
# 'fly'를 포함하고 있는 라인의 총수 계산
#/fly/ { nlines = nlines + 1 }
#END { print nlines }
# 6번째 인자값의 평균.
# awk -F',' -f text.awk sample.DAT
# END 는 젤 마지막에 한번 실행됨
#{sum += $6}
#END {printf "The average of the 6th value is %.2f(%d lines)\n", sum/NR, NR}
# BEGIN 은 최초에 한번 실행됨.
#BEGIN { print "Date, SRC_NO, Service"; print ""}
#{print $1, $2, $3}
# Array
# 역순으로 출력.
#{ line[NR]=$0}
#END{
# i=NR;
# while(i>0){
# print line[i];
# i=i-1;
# }
#}
# 각 file의 5line씩만 출력
# FNR 은 NR과 유사하나 FNR 은 file이 바뀌면 reset됨
#awk -F',' 'FNR<=5 {print FILENAME ":" $0}' *.DAT
#awk -F',' 'FNR==1, FNR==5 { print FILENAME ":" $0}' *.DAT
# 8번째 인자가 src_number_001인 행 출력.
# 정규표현식 매칭.
#awk -F',' '$8 ~ /src_number_001/ {print $0}' sample.DAT
# for 문 예제.
a["hello"] = 1;
a["world"] = 2;
a["!"] = 3;
# iterate over keys
for(key in a) {
print key, a[key]
}
============================================================================
sample.DAT
20110316234441,src_number_001,MSP,SG,3A,11,1A,src_number_001,target_number,2001,1,2011031623401390,2011031623421600,171,0,MSP_bal
....
....