[Linux] awk 명령어 사용법 / awk example

SYSTEM/Linux / /
반응형

awk 특정 컬럼 합계 구하기


 

예: 특정 벤더 장비에 snmpwalk 로  snmp cpu oid 필드만 더하기 sum

snmpwalk -v2c -c public 10.x.x.188 hrProcessorLoad | awk '{sum+=$4} END {print sum/NR}'
snmpwalk -v2c -c public 10.x.x.188 hrProcessorLoad | awk '{sum+=$4} END {if (NR > 0) print sum / NR}'

UserParameter=cpuload[*],snmpwalk -v1 -c public $1 hrProcessorLoad | awk '{sum+=$$4} END {print sum/NR}'

 

 

 

파일 내용중 특정 항목만 더하기 


tail -n 11 11302016.ccu.log | awk -F ' ' '{print $6; sum += $4} END {print "sum = ", sum}'


awk -F ' ' '{sum += $5} END {print "total", sum}'


awk '$2 > 30{print $1,$2}' cpu-load.txt

 

 

awk 파일 비교 하기


awk 'NR==FNR{c[$2]++;next};c[$2] == 0' filebeat/20170316-sumfile.log  ./IP-LIST > filebeat/20170316-offip.log

 


파일 내용중 2번째 필드가 문자열인것만 출력


awk '{ if ($2!~/^[0-9]+$/) print $0 }' cpu-load.txt

 


파일 내용중 2번째 필드가 숫자인것만 출력



awk '{ if ($2~/^[0-9]+$/) print $0 }' cpu-load.txt

awk '{ if ($2~/^[0-9]+$/) print $0 }' cpu-load.txt

 

 

awk 명령어 조합 


예: saltstack 명령어로 cpu가 50% 이상인 서버만 출력

salt -G roles:app status.cpuload --out=txt |  awk '$2 > 50{print $1,$2}'

 

 

 

 

 

awk 정규표현식


 awk 메타문자  의미 
 ^  문자열의 시작과 매칭
 $  문자열의 끝과 매칭
 .  문자 한 개와 매칭
 *  문자가 없거나 그 이상과 매칭
 +  하나의 문자 도는 그 이상과 매칭
 []  문자를 집합으로 만들고 구성원 중 하나와 일치한다.
 [^]  문자를 집합으로 만들고 구성원 중 하나와 일치 하지 않을 경우
 [A-Z]  문자를 집합으로 만들고 구성원 을 범위 지정  ex) A~Z
 A|B  OR 연산자 A 또는 B
 ()  하위표현식 , 역참조 사용가능
 &  검색 문자열에서 검색된 문자열로 대체할 떄 사용

 

 

 


 

 

리눅스 사용팁 더보기

 

'TIP/Linux' 카테고리의 글 목록

해킹 보안 시스템 운영 등 실무 경험을 토대로 지식 공유와 나눔으로 상생의 가치 실현

rootkey.tistory.com

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기