bash script2023. 10. 11. 19:55

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/627888

우선 sed를 이용한 문자열 대체의 기본적인 예시는 이전 게시물을 참고하자. 여기로.

# abc를 ABCD로 대체
echo "abc" | sed "s/abc/ABCD/"
ABCD

그런데 만약 대체하고자 하는 문자열 자체에 슬래시(/)가 포함되면 어떻게 할 것인가?

의외로 방법은 간단하다. sed에서 통상 슬래시를 구분자로 사용하지만, 사실은 s 옵션 바로 다음에 나오는 문자가 구분자로 지정된다. 그리고 이 구분자가 반드시 슬래시일 필요는 없다. 아래의 예시를 보자.

# ab/c를 ABC/D로 대체, 구분자는 "%"
echo "ab/c" | sed "s%ab/c%ABC/D%"
ABC/D

"s/문자열/문자열/" 형태 대신 "s%문자열%문자열%" 형태로, 구분자를 퍼센트(%) 기호로 지정해 주었다. 대체할 문자열에 사용되지 않는 문자를 구분자로 지정해 주면 된다.

728x90
Posted by 반달가면