정규 표현식 사용하기

Bash:
정규 표현식 사용하기

사용 방법:

기본 패턴 매칭

문자열이 패턴과 일치하는지 찾으려면 정규 표현식에 일치하는 행을 검색하는 명령어 라인 유틸리티인 grep을 사용할 수 있습니다:

echo "Hello, World!" | grep -o "World"
# 출력: World

특정 데이터 추출

regex 패턴과 일치하는 데이터 부분을 추출하려면 grep과 함께 -o를 사용할 수 있습니다:

echo "Error: File not found" | grep -oE "[A-Za-z]+:"
# 출력: Error:

sed와 함께하는 Regex 사용

sed (스트림 편집기)는 텍스트를 파싱하고 변환하는 강력한 유틸리티입니다. 다음은 sed와 regex를 사용하여 텍스트를 대체하는 방법입니다:

echo "Bash is great" | sed -e 's/great/awesome/'
# 출력: Bash is awesome

조건문에서의 패턴 매칭

Bash는 조건문에서도 직접 regex를 지원합니다:

[[ "https://example.com" =~ ^https?:// ]] && echo "URL is valid" || echo "URL is invalid"
# 출력: URL is valid

awk를 이용한 고급 패턴 매칭 및 조작

awk는 좀 더 복잡한 데이터 추출 및 조작을 지원하는 다른 텍스트 처리 도구입니다. CSV와 같은 구조화된 텍스트 데이터를 작업할 때 유용할 수 있습니다:

echo -e "ID,Name,Age\n1,John,22\n2,Jane,24" | awk -F, '$3 > 22 {print $2 " is older than 22."}'
# 출력: Jane is older than 22.

Bash 내장 regex 기능이 많은 사용 사례를 다루지만, 매우 고급 regex 작업의 경우, perl이나 python 스크립트와 Bash 스크립트의 조합을 고려할 수 있습니다. 이 언어들은 강력한 regex 라이브러리(e.g., Python의 re)를 제공합니다. Python으로 간단한 예시:

echo "Capture this 123" | python3 -c "import sys; import re; print(re.search('(\d+)', sys.stdin.read()).group(0))"
# 출력: 123

필요한 경우 이러한 프로그래밍 언어를 포함시키는 것은 Bash 스크립트에서 regex의 전체 힘을 활용할 수 있게 도와줄 수 있습니다.