awk는 sed보다 강력한 「텍스트 처리 전용 미니 프로그래밍 언어」입니다.
줄을 컬럼으로 자동 분할, 조건문·반복문·변수·함수 — 거의 작은 스크립트 언어.
CSV·로그 처리의 단골.
기본 패턴.
awk '{print $1}' file — 매 줄의 첫 컬럼 출력.
$0은 전체 줄, $1·$2·...
컬럼.
기본 구분자는 공백·탭, -F ','로 콤마 구분.
조건과 액션.
awk '/error/ {print $1}' log — 「error」 매치 줄의 첫 컬럼.
awk '$3 > 100 {print}' data — 3번째 컬럼이 100 초과인 줄.
「패턴 → 액션」 구조.
BEGIN·END.
awk 'BEGIN {sum=0} {sum+=$2} END {print sum}' data — 시작 시 sum=0, 매 줄에서 2번째 컬럼 더하기, 끝나고 합 출력.
합계·평균·통계 계산의 표준 패턴.
필드 변경.
awk '{$3="REDACTED"; print}' file — 3번째 컬럼 교체.
awk -F ',' 'BEGIN{OFS=","} {...}'로 출력 구분자 명시.
「복잡한 텍스트 가공」은 awk가 sed보다 훨씬 자연스럽고 강력.
한 줄 요약
awk는 텍스트 처리 미니 언어.
컬럼 자동 분할($1·$2), 패턴 + 액션, BEGIN/END 블록, 변수·조건·반복.
합계·필터·가공에 강함, sed보다 구조적.
더 알아볼 것
- awk 함수 — printf·split·gsub
- gawk 확장 기능
- python pandas와의 비교