728x90
[Linux] awk
리눅스에서 텍스트 파일을 처리하고 분석하는 데 AWK는 매우 강력하고 유용한 도구다.
특히 로그 파일 분석, 데이터 변환, 텍스트 파일의 특정 패턴 검색 및 조작 등에 자주 사용된다.
AWK
AWK는 텍스트 파일의 각 행을 순차적으로 처리하며, 특정 패턴을 검색하거나 그에 따라 작업을 수행할 수 있도록 설계되었다.
기본 사용법
awk '패턴 { 작업 }' 파일명
여기서 패턴은 검색하고자 하는 텍스트의 조건을 의미하며, 작업은 해당 패턴이 일치할 때 수행 할 명령어를 의미한다.
1. 파일의 각 행 출력
awk '{ print }' sample.txt
sample.txt 파일의 모든 행을 출력한다.
2. 특정 필드 출력
텍스트 파일에서 특정 필드만 출력할 수도 있다.
예를 들어 콜론(:)으로 구분된 파일에서 첫번째 필드를 출력하려면, 다음과 같이 사용할 수 있다.
awk -F':' '{ print $1 }' /etc/passwd
-F 옵션은 필드 구분자를 지정한다.
3. 패턴 매칭
특정 패턴을 포함하는 행만 출력하려면 다음과 같이 할 수 있다.
awk '/root/ { print }' /etc/passwd
4. 조건문 사용
AWK에서 조건문을 사용하여 보다 복잡한 논리를 구현할 수 있다.
예를 들어, 특정 필드의 값이 조건을 만족하는 경우에만 출력하도록 할 수 있다.
awk -F':' '$3 > 1000 { print $1, $3 }' /etc/passwd
이 명령은 세 번재 필드(사용자 ID)가 1000보다 큰 경우에만 첫번째 필드(사용자 이름)와 세번째 필드를 출력한다.
5. 변수와 연산
AWK에서는 변수와 연산을 사용할 수도 있다.
예를 들어, 파일의 모든 숫자를 합산하는 스크립트를 아래와 같이 작성할 수 있다.
awk '{ sum += $1 } END { print sum }' numbers.txt
6. 내장 함수
AWK는 다양한 내장 함수를 제공한다.
예를 들어, 문자열 길이를 구하거나 소문자를 대문자로 변환하는 함수 등이 있다.
#각 행의 길이를 출력
awk '{ print length($0) }' sample.txt
#각 행을 대문자로 변환항려 출력
awk '{ print toupper($0) }' sample.txt
반응형
'🌏 OS > Linux' 카테고리의 다른 글
[Linux] 파일 시간 확인하기 (0) | 2024.08.02 |
---|---|
[Linux] bash에서 yaml 파일 load하기 (0) | 2024.07.18 |
[Linux] 사용자에게 sudo 권한 부여 (0) | 2024.07.05 |
[Linux] sed (0) | 2024.06.26 |
[Linux] umask (0) | 2024.06.17 |