/var/log/messages
awk 프로그래밍 본문
1. AWK란?
AWK는 텍스트 처리를 위한 프로그래밍 언어입니다. 주로 텍스트 파일 내에서 패턴을 찾고, 해당 패턴에 일치하는 라인을 처리하는 데 사용됩니다. 이름 "AWK"는 그 창시자 Alfred Aho, Peter Weinberger, 및 Brian Kernighan의 성의 첫 글자에서 유래했습니다.
2. 기본 구조
AWK의 기본 구조는 pattern { action } 입니다.
pattern: 처리하려는 라인과 일치해야 하는 조건
action: 패턴과 일치하는 라인에 대해 수행할 동작
3. 기본 사용법
기본 양식은 다음과 같습니다
4. 주요 기능
필드 분리자: AWK는 기본적으로 공백이나 탭을 필드 분리자로 사용합니다.
각 필드는 $1, $2, $3 등으로 참조할 수 있습니다. $0은 전체 라인을 의미합니다.
빌트인 변수: AWK에는 NR(현재 라인 번호), NF(현재 라인의 필드 수)와 같은 유용한 내장 변수가 있습니다.
배열: AWK는 연관 배열을 지원합니다.
5. AWK의 주요 변수
NF: 현재 라인의 필드 수
NR: 현재 라인 번호
$0: 전체 라인
$1, $2, ...: 각각의 필드
6. 조건문과 반복문
AWK는 if, for, 그리고 while과 같은 기본 제어 구조를 지원합니다.
7. 유용 포인트
AWK는 텍스트 처리 작업에 최적화되어 있습니다.
필드 구분자로 공백을 기본값으로 사용하지만, -F 옵션으로 변경할 수 있습니다.
AWK는 내부적으로 정규 표현식을 지원합니다.
8. 예제
파일 내의 모든 라인 출력: awk '{ print }' filename
파일 내의 첫 번째 필드 출력: awk '{ print $1 }' filename
파일에서 가장 긴 라인 찾기: awk '{ if (length > max) { max = length; longest = $0 } } END { print longest }' filename
열의 평균값 계산하기: awk '{ sum += $1 } END { if (NR > 0) print sum / NR }' filename
중복 라인 제거 및 빈도수 출력하기: awk '{ count[$0]++ } END { for (line in count) print count[line], line }' filename | sort -n
특정 열의 값에 따라 파일 분할하기: awk '{ print > ($2 ".txt") }' filename
열의 합계 및 평균 계산하기 : awk '{ sum[$2] += $1; count[$2]++ } END { for (i in sum) print i, sum[i], sum[i]/count[i] }' filename
'SUSE' 카테고리의 다른 글
cpu 사용률 (0) | 2023.10.28 |
---|---|
어플리케이션과 프로세스의 차이 (0) | 2023.10.21 |
쉘 스크립트 if문 (0) | 2023.09.24 |
쉘 스크립트 배열 (2) | 2023.09.03 |
Yast로 방화벽 구축하기 (0) | 2023.08.11 |