AWK 개요
AWK는 A. V. Aho, P. J. Weinberger, B. W. Kernighan 세 명의 개발자가 만든 이름의 약자로, 유닉스 계열 시스템에서 널리 사용되는 데이터 조작 언어입니다. 파일이나 표준 입력으로부터 한 줄씩 읽어와 지정된 패턴과 액션을 기반으로 데이터를 처리합니다.
AWK의 작동 방식
AWK는 다음과 같은 기본 구조를 따릅니다: `pattern { action }`. 각 줄을 읽을 때마다 `pattern`이 일치하면 `action`을 수행합니다. 패턴이 없으면 모든 줄에 대해 액션을 수행하고, 액션이 없으면 매칭되는 줄을 그대로 출력합니다.
AWK의 특징
- 줄 단위 처리: 입력 파일을 한 줄(레코드)씩 읽어서 처리합니다.
- 필드 단위 접근: 각 줄을 공백(기본 구분자)으로 구분된 필드($1, $2, ...)로 나누어 접근합니다.
- 패턴 매칭: 특정 패턴과 일치하는 줄에만 작업을 수행할 수 있습니다.
- 프로그래밍 기능: 변수, 조건문, 반복문, 함수 등 기본적인 프로그래밍 기능을 제공합니다.
- 보고서 생성: 복잡한 형식의 텍스트 보고서를 쉽게 생성할 수 있습니다.
주요 AWK 명령어 및 옵션
AWK의 다양한 옵션과 내장 변수, 특수 패턴을 사용하여 텍스트 데이터를 정교하게 처리해 보세요.
1. 기본 사용법 및 입력/출력 옵션
2. 내장 변수
3. 특수 패턴
생성된 명령어:
명령어를 조합해 보세요.
설명:
`awk` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
AWK 명령어의 다양한 활용 예시들을 통해 텍스트 데이터 처리의 마법을 경험해 보세요.
파일에서 두 번째 컬럼만 출력
awk '{print $2}' data.txt
`data.txt` 파일에서 각 줄의 두 번째 필드(컬럼)만 추출하여 출력합니다. (기본 구분자: 공백)
CSV 파일에서 특정 컬럼 출력
awk -F',' '{print "이름: " $1 ", 점수: " $3}' scores.csv
쉼표(`,`)로 구분된 `scores.csv` 파일에서 이름(첫 번째 필드)과 점수(세 번째 필드)를 출력합니다.
특정 패턴이 있는 줄만 출력
awk '/ERROR/{print}' log.txt
`log.txt` 파일에서 'ERROR' 문자열을 포함하는 모든 줄을 출력합니다.
줄 번호와 함께 출력
awk '{print NR ": " $0}' names.txt
`names.txt` 파일의 각 줄 앞에 줄 번호를 붙여서 출력합니다.
첫 번째 필드가 'apple'인 줄에서 두 번째 필드 값 변경
awk '$1 == "apple" {$2 = "fruit"; print}' inventory.txt
파일에서 첫 번째 필드가 'apple'인 줄을 찾아, 두 번째 필드를 'fruit'으로 변경한 후 전체 줄을 출력합니다.
파일 처리 전후 메시지 출력 및 총합 계산
awk 'BEGIN {total = 0; print "계산 시작!"} {total += $1} END {print "총합: " total}' numbers.txt
`numbers.txt` 파일의 숫자를 모두 더하고, 시작과 끝에 메시지를 출력합니다. (각 줄에 하나의 숫자만 있다고 가정)