19.1. 정규 표현식의 간략한 소개

표현식(expression)이란 문자 그대로의 의미 이상으로 해석되는 메타문자(metacharacters)라고 부르는 문자들의 집합을 말합니다. 예를 들어, 인용 부호(quote symbol)는 어떤 사람이 말한 것을 나타내 주기도 하지만 또한 그 뒤에 나오는 심볼에 대해서 메타적 의미를 부여하기도 합니다. 정규 표현식은 유닉스에 특별한 특징을 부여하는 문자들과 메타문자들의 집합입니다. [1]

정규 표현식은 주로 텍스트 탐색과 문자열 조작에 쓰입니다. 정규 표현식은 하나의 문자와 일치(match)하거나, 혹은 문자열의 일부분(substring)이나 전체 문자열인 문자 집합들과 일치하게 됩니다.

Sed, awk, 은 스크립트에서 정규 표현식을 인자로 받아 파일이나 I/O 스크림을 걸러주거나 필터링 해줍니다. 이런 예제는 예 A-7예 A-12 를 참고하세요.

Dougherty와 Robbins가 쓴 "Sed & Awk"에서 정규 표현식에 대한 완전하고 명쾌한 사용법을 볼 수 있습니다(서지사항 참고).

주석

[1]

어떤 메타문자도 포함하지 않아서 문자열 자체의 뜻을 그대로 갖고 있는 문자열이 가장 간단한 형태의 정규 표현식입니다.

[2]

sed, awk, grep은 한 줄에 대해서 처리를 하기 때문에 뉴라인을 처리하지 못 합니다. 뉴라인이 들어 있는 여러 줄에 걸친 표현식에서 점(.)은 뉴라인과 일치합니다.
#!/bin/bash

sed -e 'N;s/.*/[&]/' << EOF   # Here Document
line1
line2
EOF
# 출력:
# [line1
# line2]



echo

awk '{ $0=$1 "\n" $2; if (/line.1/) {print}}' << EOF
line 1
line 2
EOF
# 출력:
# line
# 1


# Thanks, S.C.

exit 0