2009. 8. 31. 10:07

vi 문자열 치환



'vi 에서 문자열을 편하게 바꾸고 싶다. '

그간 바꾸고자 원하는 단어나 문자열을 지우고 바꾸는 단순 무식한 방법을 사용했다. 가장 간단하고 쉬우니깐!!
하지만, 여러개의 동일한 단어나 문자열을 다른 동일한 단어나 문자열로 바꾼다고 했을 때.. 그간 사용했던 방법은 정말 왕 무식한 방법이다.

사용법은 의외로 간단하다.
:%s/기존 문자열/바꿀 문자열/g

예를 들어 babo라는 문자열을 baba로 바꾸고 싶다면..
:%s/babo/baba/g
라고 하게 되면, vi 로 열고 있는 문서의 모든  babo라는 문자열을 baba로 바꾸게 된다.

아래는 문자열을 치환하고자하는 방법에 따라 몇가지 종류를 나열한 것이다.
필요할 때 참고하면 될듯..
:s/기존 문자열/바꿀 문자열/             - 커서가 있는 행에서 처음 나오는 기존 문자열을 바꿀 문자열로 치환
:s/기존 문자열/바꿀 문자열/g           - 커서가 있는 행에 나오는 모든 기존 문자열을 바꿀 문자열로 치환
:%s/기존 문자열/바꿀 문자열/g        - 전체 내용에서 기존 문자열을 바꿀 문자열로 치환
:%s/기존 문자열/바꿀 문자열/gc      - 전체 내용에서 기존 문자열을 바꿀 문자열로 치환, 치환시 확인
:1,20s/기존 문자열/바꿀 문자열        - 1~20 행에서 처음 나오는 기존 문자열을 바꿀 문자열로 치환
:1,20s/기존 문자열/바꿀 문자열/g     - 1~20 행에 나오는 모든 기존 문자열을 바꿀 문자열로 치환
:-2, +4s/기존 문자열/바꿀 문자열/    - 커서 위 2, 아래 4행 중 처음 나오는 기존 문자열을 바꿀 문자열로 치환
:-2, +4s/기존 문자열/바꿀 문자열/g  - 커서 위 2, 아래 4행에 나오는 모든 기존 문자열을 바꿀 문자열로 치환

더 많은 내용은 'KLDP의 vi, vim 활용에 관한 문서'를 참조하면 될 듯 하다.

'Linux > Tip' 카테고리의 다른 글

우분투 / 데비안 계열 고정 ip 설정  (4) 2010.01.06
diff and patch in linux  (0) 2009.12.12
Ubuntu 한국 업데이트(kr.archive.ubuntu.com) 미러 접속문제..  (1) 2009.08.25
예쁜 쉘 프롬프트  (1) 2009.03.18
리눅스 IP 설정  (0) 2008.04.24