정규 표현식 사용하기

Fish Shell:
정규 표현식 사용하기

사용 방법:

Fish Shell 자체는 regex를 위한 내장 명령어를 가지고 있지 않지만, grep, sed, awk와 같이 regex를 지원하는 외부 명령어를 효과적으로 사용하여 스크립트에 regex 작업을 통합할 수 있습니다.

grep을 사용한 기본 패턴 매칭

파일에서 패턴에 일치하는 줄 검색하기:

grep '^[0-9]+' myfile.txt

이 명령어는 myfile.txt에서 하나 이상의 숫자로 시작하는 라인을 찾습니다.

sed를 사용한 추출 및 교체

파일에서 전화번호 추출하기:

sed -n '/\([0-9]\{3\}\)-\([0-9]\{3\}\)-\([0-9]\{4\}\)/p' 연락처.txt

data.txt에서 “foo"의 모든 발생을 “bar"로 교체하기:

sed 's/foo/bar/g' data.txt

기본 Regex를 위한 string 사용

Fish Shell의 string 명령어는 매치 및 교체와 같은 간단한 regex 작업을 지원합니다:

문자열에서 패턴 매치하기:

echo "fish 3.1.2" | string match -r '3\.[0-9]+\.[0-9]+'

출력:

3.1.2

‘fish’ 다음에 오는 숫자를 ‘X.X.X’로 교체하기:

echo "Welcome to fish 3.1.2" | string replace -ra '([fish]+\s)[0-9\.]+' '$1X.X.X'

출력:

Welcome to fish X.X.X

awk를 사용한 고급 매칭

첫 번째 열이 특정 패턴과 일치하는 경우 두 번째 열의 데이터를 출력하기:

awk '$1 ~ /^a[0-9]+$/ {print $2}' datafile

이 명령은 datafile에서 첫 번째 열이 “a"로 시작하고 하나 이상의 숫자가 뒤따르는 줄을 찾고, 두 번째 열을 출력합니다.

이러한 외부 명령어를 통합함으로써, Fish Shell 프로그래머는 복잡한 텍스트 조작 작업을 위해 정규 표현식의 전체 기능을 활용할 수 있게 되어, 쉘의 기본 기능을 강화할 수 있습니다.