728x90
반응형
Linux 환경에서 데이터를 처리하거나 파일 내용을 분석할 때, awk
와 sed
는 강력한 도구로 활용됩니다. 이 글에서는 두 명령어의 기본 개념과 주요 사용법을 알아보고, 실습 예제를 통해 활용 방법을 익혀보겠습니다.
awk 소개
awk
는 텍스트 파일을 줄 단위로 읽고, 특정 조건에 맞는 데이터를 추출하거나 가공할 수 있는 강력한 텍스트 처리 도구입니다.
awk의 기본 문법
awk 'pattern { action }' file
- pattern: 데이터를 필터링하는 조건 (예: 특정 문자열 포함 여부).
- action: 조건에 맞는 데이터에 수행할 작업 (예: 출력, 계산 등).
- file: 처리 대상 파일.
주요 필드 변수
$0
: 현재 줄 전체.$1
,$2
, ...: 현재 줄의 필드(열) 값.NR
: 현재 줄 번호.NF
: 현재 줄의 필드 개수.
예제 1: 특정 열 출력
파일 data.txt
:
Alice 30
Bob 25
Charlie 35
명령어:
awk '{ print $1 }' data.txt
결과:
Alice
Bob
Charlie
예제 2: 조건에 맞는 줄 출력
30세 이상인 사람만 출력:
awk '$2 >= 30 { print $1, $2 }' data.txt
결과:
Alice 30
Charlie 35
sed 소개
sed
는 스트림 에디터로, 텍스트 데이터를 읽어서 변환하거나 편집하는 데 사용됩니다. 주로 텍스트 치환, 삽입, 삭제에 활용됩니다.
sed의 기본 문법
sed 'command' file
- command: 텍스트 처리 명령 (예: 치환, 삭제).
- file: 처리 대상 파일.
주요 옵션
-n
: 출력 결과를 억제하고, 명시적으로 출력하도록 설정.-i
: 파일 내용을 직접 수정.
예제 1: 문자열 치환
파일 example.txt
:
apple
banana
cherry
명령어:
sed 's/apple/orange/' example.txt
결과:
orange
banana
cherry
예제 2: 특정 줄 삭제
2번째 줄 삭제:
sed '2d' example.txt
결과:
apple
cherry
awk와 sed의 차이점
기능 | awk | sed |
---|---|---|
주요 용도 | 데이터 분석 및 처리 | 텍스트 편집 및 변환 |
데이터 구조 | 줄과 열(필드) 단위로 처리 | 줄 단위로 처리 |
프로그래밍 가능성 | 내장된 스크립팅 언어 제공 | 패턴과 명령 기반 처리 |
awk와 sed의 조합 사용
awk
와 sed
를 함께 사용하여 복잡한 작업을 간단히 수행할 수 있습니다.
예제: 특정 문자열을 치환한 뒤 특정 조건에 맞는 데이터 출력
파일 records.txt
:
John,25,Developer
Alice,30,Designer
Bob,22,Engineer
Engineer
를Technician
으로 치환:
sed 's/Engineer/Technician/' records.txt > temp.txt
- 나이가 25세 이상인 사람만 출력:
awk -F',' '$2 >= 25 { print $1, $2, $3 }' temp.txt
결과:
Alice 30 Designer
John 25 Developer
결론
awk
와 sed
는 각각 데이터 처리와 텍스트 변환에 강력한 도구이며, 이를 적절히 조합하면 효율적으로 파일을 분석하고 가공할 수 있습니다. 이 글에서 소개한 예제를 직접 실행하며 익혀 보세요. 앞으로도 다양한 실습을 통해 더 깊이 있는 활용 방법을 배워가길 바랍니다.
반응형
'Linux Bash shell script' 카테고리의 다른 글
Bash Script에서 `curl`과 `jq` 사용법 [ 외부 프로그램 활용하기 ] (0) | 2025.02.08 |
---|---|
Bash Shell Script 실행 속도 최적화 (0) | 2025.02.07 |
Bash Shell Script - 정규표현식과 grep (0) | 2025.02.05 |
Bash Shell Script 로그 파일 작성 및 분석 (0) | 2025.02.04 |
Bash 디버깅 옵션: `set -x`와 `set -e` 사용법 (0) | 2025.02.03 |