Linux 명령어 | 파일 관리 | awk 패턴 탐색 처리
awk 명령어
패턴 탐색과 처리를 위한 명령어로 간단하게 파일에서 결과를 추려내고 가공하여 원하는 결과물을 만들어내는 명령어이다.
awk는 초기 개발자 Aho, Weinberger, Kernighan의 세 명의 성의 앞글자를 따서 붙여졌다. GNU 프로젝트에서 만들어진 텍스트 처리 프로그래밍 언어로 유닉스 계열의 OS에서 사용 가능하며, 텍스트 형태로 되어있는 입력 데이터를 행과 단어 별로 처리해 출력한다.
사용법
$ awk 'pattern' filename
$ awk '{action}' filename
$ awk 'pattern' '{action}' filename
$ awk [ -F fs ] [ -v var=value ] [ 'prog' | -f progfile ] [ file ... ]
awk 명령어 사용 예제
예시1) 명령어로 출력되는 내용중에 원하는 필드만 표시
$ date
2018년 6월 24일 일요일 17시 16분 54초 KST
$ date | awk '{print $1}'
2018년
날짜를 표시하는 date에서 년도만 추출하여 표시한다.
예제2) 파일 내용을 추출하여 원하는 필드만 표시
$ cat sample.txt
foo 한글 12
dev 데브 24
kuma 쿠마 33
hello 헬로 55
kuma를 포함하는 라인 추출하여 표시
$ awk '/kuma/' sample.txt
kuma 쿠마 33
공백 기준으로 두번째, 첫번째 필드만 표시
$ awk '{print $2, $1}' sample.txt
한글 foo
데브 dev
쿠마 kuma
헬로 hello
kuma를 포함하는 라인을 추출하여, 공백 기준으로 두번째, 첫번째 필드만 표시
$ awk '/kuma/{print $2, $1}' sample.txt
쿠마 kuma
예제3) 필드 구분자를 통한 표시 공백을 구분자로 하여 필드를 나눈 후 9번째 필드을 표시한다.
$ ls -al
total 59384
drwxr-xr-x 28 kimkc staff 952 6 22 22:29 .
drwxr-xr-x+ 80 kimkc staff 2720 6 24 16:57 ..
drwxr-xr-x 21 kimkc staff 714 6 24 16:57 devkuma
drwxr-xr-x 18 kimkc staff 612 1 2 23:12 tutorial
drwxr-xr-x 13 kimkc staff 442 6 16 07:56 workspace
$ ls -al | awk -F " " '{print $9}'
.
..
devkuma
tutorial
workspace
최종 수정 : 2019-10-14