4/20/2007

awk 익히기

awk의 형식.

awk 'pattern' filename
awk '{ action }' filename
awk 'pattern { action } ' filename

------------------------------------------------------------------------------
예)exam1 파일 내용.

bash$ cat exam1
Tom Jones 4424 5/12/66 543354
Mary Adams 5346 11/4/63 28765
Sally Chang 1654 7/22/54 650000
------------------------------------------------------------------------------

첫번째 예제) - awk '{ print $1 } ' exam1의 실행결과

bash$ awk ' { print $1} ' exam1
Tom
Mary
Sally

위와 같이 명령을 내릴 경우 저런식으로 출력이 됩니다.
print는 모니터에 출력하라는 의미입니다.
$1은 첫번째 필드 값을 의미합니다.
결과적으로 exam1을 읽어서 공백을 기준으로 첫번째 필드의 내용만
출력하라는 의미입니다.그래서, 젤 앞에 있는 이름만 출력이 된 거죠.

------------------------------------------------------------------------------
두번째 예제) - awk '/Adams/' exam1의 실행 결과.

bash$ awk '/Adams/' exam1
Mary Adams 5346 11/4/63 28765

위에서 /Adams/는 정규표현식으로 Adams가 들어간
줄을 의미 합니다. 그래서, 1개의 데이터만 나오죠.

------------------------------------------------------------------------------
세번째 예제) - awk '/Adams/ {print $1} ' exam1 의 실행 결과.

bash$ awk '/Adams/ { print $1 } ' exam1
Mary

저건 위의 두예제의 복합판입니다.
쉽게 말하면 Adams라는 이름이 들어간 절의 첫번째 필드만
출력하라는 의미죠

댓글 없음: