
awk 란?
파일에서 패턴이 일치하는 행을 찾아 해당 행에 지정된 명령을 수행한다. 주로 쉘 스크립트에서 파일에서 지정된 패턴을 검색하고 명령어를 이용하여 필요한 포멧으로 가공하기 위해 사용된다.
여담으로 awk는 특별한 의미를 가진 단어가 아니라 awk의 개발자 Alpred Aho, Peter Weinberer, Brian Kernighan 세명의 이니셜을 따온 것이다.
awk 사용
$ awk 'pattern' filename
$ awk '{action}' filename
$ awk 'pattern {action}' filename
awk의 사용 형식은 위와 같다. awk 커맨드 이후 작은 따옴표로 감싸진 패턴이나 액션, 혹은 둘다. 그리고 마지막으로 대상 파일을 입력한다. 만일 파일 이름을 지정하지 않는 경우 표준 입력을 받는다.
옵 션 | 설 명 |
-F | 필드 구분 인자 설정 |
-f | 스크립트 파일 지정 |
-v | awk 내부에 사용할 변수 지정 |
awk 지정한 패턴을 검색하고 명령어를 이용하여 그것을 처리 할 수 있다.
만일 지정한 패턴이 없다면 모든 내용에 적용하여 출력하게 된다. 패턴의 지정은 “/pattern/”을 사용하며 중복된 패턴의 지정은 “,”를 이용하며 하나의 명령어는 “{command}”로 구성된다.
예) passwd 파일에서 사용자 계정만 출력
/etc/passwd 파일은 다음과 같은 포멧을 따른다.
kukuta:x:528:529::/home/kukuta:/bin/bash
$ awk –F: ‘{print $1}’ /etc/passwd
필드 구분인자(-F) 는 “:”로 두었다. 그리고 $1은 구분자로 인해 구분된 문자열의 단락의 첫번째를 나타낸다. 그리고 마지막의 /etc/passwd는 awk를 적용할 파일의 이름이다.
부록 1. 같이 읽으면 좋은 글