[VIM / VI] 문자열 바꾸기 (치환) 명령어
VIM, VI 문자열 바꾸기 (치환) 명령어
※ 먼저 VIM 또는 VI에서 편집중이라면, 키보드의 Esc 키를 눌러 편집모드에서 빠져나와야 한다.
그런 다음 아래와 같은 명령어를 사용하면 문자열을 치환할 수 있다.
:%s/변경전문자열/변경후문자열
applea is delicious
banana is delicious
apple is red
banana is yellow
만약 위와 같은 문자열이 있다고 하면,
콜론(:)을 누르고 %s/apple/banana 라고 하면 모든 apple라는 문자열이 banana로 한꺼번에 치환된다.
bananaa is delicious
banana is delicious
banana is red
banana is yellow
문자열 치환시 매번 확인하는 옵션 (c)
:%s/apple/banana/c
위와 같이 c 옵션을 붙이면
바꿀 때마다 바꾸어도 좋은지 물어보기에 더 안전하다.
y를 누르면 바꾸고, n을 누르면 다음으로 건너뛰고, a를 누르면 모두 치환한다.
문자열에 완벽하게 일치할 때만 변경하는 방법
:%s/\<apple\>/banana
이렇게 하면 정확하게 apple에 일치될 때만 바꾼다.
즉 apple는 바꾸지만, apple 앞뒤로 다른 문자열이 붙어 있는 경우,
예를 들어
applea is delicious
banana is delicious
apple is red
banana is yellow
와 같은 문자열이 있을때 위 명령어를 사용하면 아래와 같은 결과가 나온다.
applea is delicious
banana is delicious
banana is red
banana is yellow
대소문자 구분없이 문자열을 치환하는 방법
:%s/apple/banana/i
이렇게 i 옵션을 붙입니다.
전역 치환
appleappleappleappleappleappleappleapple
위 문자열 처럼 같은 문자열이 줄지어 붙어있는 경우에는
문장의 첫번째 apple만 banana로 치환된다.
bananaappleappleappleappleappleappleapple
문장의 모든 apple를 banana로 치환하려면 g 옵션을 사용한다.
:%s/apple/banana/g
대소문자 구분없이 치환하기 위해서는 이렇게 i 옵션을 추가로 줄 수 도 있다.
:%s/apple/banana/gi