awk 명령으로 파일의 특정 부분 가져오기

발생일: 2014.05.27

키워드: awk

문제:

쉘 스크립트에서 정규식으로 특정 부분을 가져와 처리하려고 한다.
`awk`로 간단히 처리할 수 있다고 알고 있는데, 이참에 정확한 사용 방법을 알아봐야겠다.


해결책:

awk ‘/정규식 패턴/ {액션} /정규식 패턴/ {액션}’ file


1. awk 명령은 매 라인 단위로 실행되며, 정의한 정규식과 액션을 순서대로 수행한다.
2. 싱글 쿼테이션은 해당 값이 커맨드로 인식되지 않도록 하는 역할을 한다.
3. 정규식이 매칭될 때에만 해당 액션을 수행한다.
4. 정규식이 매칭되지 않으면 아무 액션을 수행하지 않는다.
5. 액션이 정의되어 있지 않으면 기본적으로 print를 수행한다.


예)
$ awk ‘/foo/ /bar/‘ sample.txt

foo와 bar가 포함된 라인을 출력한다.

공백으로 나뉘어진 값은 각각 $1 $2 변수에 할당된다.
$NF는 전체 필드 개수를 나타낸다. 마지막 필드의 값을 출력하는 용도로 사용할 수 있다.



참고: 

카테고리

분류 전체보기 (711)
About me. (6)
Daylogs (676)
영어공부 (0)
My works - 추억 (29)
비공개 (0)