운영체제(OS)/Linux,Unix

[Unix/Linux] awk 사용법

승미니1024 2017. 9. 30. 07:24

awk?


awk는 파일 정보, 파일 시스템 정보, 프로세스 정보등  수많은 데이터 중에서 원하는 것을 추출 혹은 데이터 조작 할 수 있게 해주는 유용한 프로그램이다.




awk 사용법 (파일 데이터 추출)


[사용법]

awk 'pattern' filename

awk '{action}'  filename

awk 'pattern' '{action}' filename


예제를 보면서 사용법을 익혀보도록 하겠다.

[file.dat 파일 내용]

 value 1234 가

 test 2345 나

 fire 4818 다

 window 6281 라


위와 같은 파일 내용이 있다고 하면 위의 내용을 아래와 같이 데이터를 조작해 보도록 하겠다.


[value를 포함하는 라인 추출]

 awk '/value/' file.data 

 value 1234 가



[공백 기준으로 첫번째 필드만 출력]

 awk '{printf $1}' file.data 

 value

 test

 fire

 window


[ fire로 시작하는 라인에서 공백 기준으로 1,3번째 필드만 출력]

 awk '/fire/{printf $1, $3}' file.data 

 fire 다






awk 사용법 (명령 후 데이터 추출)


[사용법]

command | awk 'pattern'

command | awk '{action}'

command | awk 'pattern' '{action}'


예제를 보면서 사용법을 익혀보도록 하겠다.

[file.data 를 cat 했을 때 나오는 결과]

 value 1234 가

 test 2345 나

 fire 4818 다

 window 6281 라


위와 같은 명령어를 수행한 후 출력 된 내용을 아래와 같이 데이터를 조작해 보도록 하겠다.


[value를 포함하는 라인 추출]

 cat file.data | awk '/value/'

 value 1234 가



[공백 기준으로 첫번째 필드만 출력]

 cat file.data | awk '{printf $1}'

 value

 test

 fire

 window


[ fire로 시작하는 라인에서 공백 기준으로 1,3번째 필드만 출력]

 cat file.data | awk '/fire/{printf $1, $3}'

 fire 다


위의 예제에서 cat file.data 대신 디스크 정보를 보여주는 df 나 프로세스 상태를 보여주는 ps 등을

넣고 awk를 이용해 사용자가 원하는 데이터를 추출할 수 있다.

반응형