본문 바로가기

도구의발견

[Linux] awk

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. 같이 읽으면 좋은 글

 

 

유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!