어떤분이 sed 를 이용한 문자열치환을 예를 드셔서 참고로 몇가지 기본적인 메타문자를 알아 봅니다.


. 임의의 한개 문자

[ ] 문자 클래스 목록에 있는 문자 중 하나
[^ ] 부정 문자 클래스 목록에 없는 문자 중 하나
^ 캐럿 행이 시작하는 위치
$ 달러 행이 끝나는 위치
\< 백슬래시< 단어가 시작하는 위치
>\ >백슬래시 단어가 끝나는 위치
| 또는, 수직막대(bar) 수직 막대로 구분된 각 표현식중 하나에 매치됨
(  ) 괄호 | 의 영역을 제한함

검색시에 위의 옵션을 섞어서 검색하면 아주 편리합니다.

옵션아이템... ?
활용도가 참 많은 녀석입니다.
문자뒤에 ? q을 붙인 경우 표현식에 들어가도 되고 들어가지 않아도 되는 항상 참인 경우

예를 들어 color 를 찾으려 할때 colour 과 함께 검색하고자 한다면
colou?r   과 같이 표현하면 ? 앞의 u 는 있어도 검색이 되고 없어도 참이 되어 동작한다.
즉 color  r와 colour 이 모두 참이 되어 검색이 된다.
문자열로 묶는 것도 가능하다
4th|4  와 같이 한다면 4(th)?  와 같이 한다면
4 혹은 4th 를 모두 참으로 인식하게 된다.

+   바로 앞의 아이템이 한번이상 반복
*    바로 앞의 아이템이 0번 이상 반복

이렇게 ?+* 세개의 메타 문자는 quantifier  라고 부른다.

이제 활용편...
이전분의 예제에서

#include "before/header.h"
#include "befre/header.h"

에서 

#include "a.h"

이렇게 바꾸고 싶은데

오타난 놈도 있어서 그녀석도 같이 바꾸고 싶습니다.
이럴때는 

sed -i 's/\#include \"befo\?re\/header.h\"/\#include \"a.h\"/g' a.c

와 같이 오타난 부분의 문자를 어떤것이든지 대치되도록 해주면 됩니다. 찹 쉽죠 잉?