[Unix/Linux] awk 사용법
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를 이용해 사용자가 원하는 데이터를 추출할 수 있다.