Linux Bash shell script

Bash Shell Script 문자열 조작 (cut, awk, sed 활용)

임베디드 친구 2025. 1. 28. 10:13
반응형

Linux에서 문자열을 조작하는 것은 스크립트 작성에 필수적인 작업 중 하나입니다. 이 글에서는 Bash Shell Script에서 자주 사용하는 문자열 조작 도구인 cut, awk, sed를 활용하여 문자열을 효과적으로 다루는 방법을 소개합니다. 실습 예제도 포함되어 있으니 따라 하면서 익혀보세요!


1. cut 명령어

cut 명령어는 입력 데이터를 필드별로 분리하거나 특정 문자 범위를 추출하는 데 사용됩니다.

사용법

cut [옵션] [파일]
  • -f: 필드 번호를 지정
  • -d: 구분자를 지정 (기본값은 탭 문자)
  • -c: 특정 문자 위치를 추출

예제 1: 콤마로 구분된 데이터 추출

# data.csv 내용
# name,age,city
# John,25,New York
# Alice,30,Los Angeles
# Bob,22,Chicago

echo "John,25,New York" | cut -d',' -f1  # John

예제 2: 특정 문자 위치 추출

echo "abcdefg" | cut -c1-3  # abc
echo "abcdefg" | cut -c4-  # defg

2. awk 명령어

awk는 강력한 텍스트 처리 언어로, 데이터를 필드 단위로 나누고 조작할 수 있습니다.

사용법

awk '패턴 { 액션 }' [파일]
  • $1, $2 등: 각 필드를 나타냄
  • FS: 필드 구분자 지정

예제 1: 필드 출력

echo "John,25,New York" | awk -F',' '{print $1}'  # John
echo "John,25,New York" | awk -F',' '{print $3}'  # New York

예제 2: 조건에 따른 출력

# data.txt 내용
# John 25
# Alice 30
# Bob 22

echo -e "John 25\nAlice 30\nBob 22" | awk '$2 > 24 {print $1}'
# Alice
# John

3. sed 명령어

sed는 강력한 문자열 검색과 치환 도구입니다. 대량의 텍스트 파일이나 문자열을 빠르게 수정할 때 유용합니다.

사용법

sed '패턴/명령' [파일]
  • s: 문자열 치환
  • d: 줄 삭제
  • p: 특정 줄 출력

예제 1: 문자열 치환

echo "Hello World" | sed 's/World/Bash/'  # Hello Bash

예제 2: 특정 줄 삭제

echo -e "Line1\nLine2\nLine3" | sed '2d'
# 결과:
# Line1
# Line3

예제 3: 구분자 변경

echo "John,25,New York" | sed 's/,/|/g'
# John|25|New York

4. 도구 비교

도구 주요 기능 장점
cut 간단한 필드 추출 구문이 간단하고 빠름
awk 고급 텍스트 조작 프로그래밍 기능 제공
sed 문자열 치환 빠르고 유연함

5. 실습: 혼합 사용 예제

다양한 도구를 혼합하여 문제를 해결하는 실습을 진행해 봅시다.

문제: 데이터 파일에서 특정 조건을 만족하는 데이터를 변환

data.csv:

name,age,city
John,25,New York
Alice,30,Los Angeles
Bob,22,Chicago

목표: 25세 이상인 사람의 이름을 대문자로 변환하고 구분자를 |로 변경

해결 스크립트

#!/bin/bash

# 파일에서 처리
cat data.csv \
    | awk -F',' '$2 >= 25 {print $1 "," $2 "," $3}' \
    | sed 's/,/|/g' \
    | awk -F'|' '{print toupper($1) "|" $2 "|" $3}'

결과:

ALICE|30|Los Angeles
JOHN|25|New York

마무리

이번 포스팅에서는 cut, awk, sed를 활용하여 문자열을 조작하는 방법을 알아보았습니다. 각 도구는 특화된 기능이 있으므로 상황에 맞게 적절히 선택하는 것이 중요합니다. 실습을 통해 각 도구의 사용법에 익숙해지길 바랍니다.

반응형