내 잡다한 노트
awk 본문
awk도 sed와 마찬가지로 자주 까먹는다 ㅎㅎ;;
[ 주요 용도 ]
텍스트 파일의 각 행을 처리하고, 특정 패턴을 찾거나, 데이터 필드를 추출 및 변환하는 데 사용된다.
[ 기본 구문]
awk 'pattern { action } ' file
pattern 은 매칭 패턴을 의미한다. 행이 이 패턴과 일치하면 action이 실행된다.
action은 수행할 작업이다.
필드에 대해 접근할 때는 $숫자 를 사용한다.
여기서 $0 은 전체 행이고, $1, $2 ... 부터 각 필드를 나타낸다.
내장 변수가 있는데,,,
NR : 현재 행 번호
NF : 현재 행의 필드 개수
FS : 필드 구분자(Separator). 기본값은 공백이다.
[ 예제 ]
echo "Hello World" | awk '{ print $0 }'
awk '/pattern/ { print $0 }' file
-> 파일에서 pattern이 포함된 모든 행을 출력한다.
awk '$2 > 100 { $3 = "High"; print $0 }' data.txt
-> 두 번째 필드가 100보다 큰 행을 찾아 세번째 필드를 High로 변경한다.
-> 패턴이라는게 조건도 가능함을 알려주는 예제.