명령어/Linux

[리눅스] awk 열 추출 집계 조건 필터

jykim23 2026. 7. 9. 10:34
반응형

부제: 공백·구분자로 나눈 열을 뽑고, 조건으로 거르고, 합계까지 내기

awk '{print $1}' app.log          # 1번째 필드 (공백 기준)
awk -F, '{print $2}' users.csv    # 콤마 구분, 2번째 필드
awk '$3=="ERROR"{print $1,$2}'    # 조건에 맞는 줄만
$ awk '$3=="ERROR"{print $1, $2, $3}' app.log
2026-07-08 10:00:03 ERROR
2026-07-08 10:00:07 ERROR

awk는 줄을 필드($1, $2…)로 나눠 다룬다. -F로 구분자를 바꾸고,
조건{동작}으로 거르고, END{}로 집계한다. cut보다 조건·계산이 필요할 때 쓴다.

이렇게도 쓴다

로그 레벨별 건수를 집계한다(END 블록).

awk '{c[$3]++} END{for(k in c) print c[k], k}' app.log

 

각 줄의 마지막 필드만 뽑는다($NF).

awk '{print $NF}' app.log

 

CSV 특정 열의 합계를 낸다(헤더 제외).

awk -F, 'NR>1{sum+=$2} END{print sum}' nums.csv

 

헤더 한 줄을 빼고 본다(NR은 줄 번호).

awk 'NR>1' users.csv

 

조건 필터와 열 추출을 한 번에 한다(grep + cut 대체).

awk -F, '$3=="id"{print $1}' users.csv
반응형