2015/08/05

vi에서 패턴을 이용해 동일한 구문 바꾸기

vi에서 HTML문서를 수정하다보니,

<a href="http://..../html/...."></a>

와 같은 구문에서 http에서부터 html까지 "."로 일괄적으로 바꾸고 싶을 때 사용하는 구문입니다.

command mode에서

s / pattern (바꾸고 싶은 문자열) / string (바꿀 문자열) / option

을 쓰면 됩니다.

pattern 은 정규표현식도 가능합니다. 다만 vi나 vim에서 쓰는 건 조금 다를 수 있으니, :help 를 이용해서 사용법을 알아보시면 되겠습니다.

예를 들어, http에서부터 html까지 .로 바꾸려면,

예:

:s/http.\{-}html/./c

로 해주면 커서가 있는 줄에 있는 http에서부터 바로 다음 html까지 찾아서 .로 바꿔줍니다. 코드에서 \{-}는 정규표현식의 non greedy 표현입니다. c는 옵션으로 확인 절차가 한번 들어갑니다.

파일 전부에서 바꿔주고 싶으면 s앞에 %를 붙여주면 됩니다.(:help range 참조)

:g/http.\{-}html/./c

댓글 없음: