Monday, December 15, 2014

[LINUX] vi 찾기, 찾아바꾸기

vi에서 특정문자를 여러개 바꾸기를 진행하다보니 예전에 썼었던 찾아바꾸기가 기억나지 않아 검색하고 있어서 이번에 정리를 좀 해보려고 한다. (LINUX 카테고리 잡아 놓고 vi만 쓰고 있다... )

우선 가장 기본적인 vi에서 검색은
그냥

/검색문자

하면 된다.
예를 들면

fgh를 검색하고 싶다 하면

/fgh 

하면 fgh가 모두 하일라잇 된다.

위에서 아래로 계속찾기 하려면 n 을 누르면 되고
아래에서 위로 다시찾기 하려면 N 을 누르면 된다.

반대로 찾기를 하기 위해서는

?fgh


하면 fgh가 모두 하일라잇 되며

/fgh와 반대로

위에서 아래로 계속찾기 하려면 N 을 누르면 되고
아래에서 위로 다시찾기 하려면 n 을 누르면 된다.


그럼 찾아바꾸기는 어떻게 하는 것인가??
조금 복잡하지만 일단 예문부터 보자

:%s/fgh/FGH


이렇게하면 전체에서 fgh가 FGH로 변하게 된다.

그럼 내가 원하는 부분만 바꾸려면?

:%s/fgh/FGH/c


c 옵션을 붙이므로써 y를 누르면 바뀌고, n를 누르면 다음으로 건너뛰고, a를 누르면 모두 바뀐다.

잠깐 정리하면 찾아바꾸기는

:(시작줄),(끝줄)s/(찾을패턴)/(바꾸는스트링)/옵션

이 되시겠다.

여러가지 예문을 써보면

:1,5s/a/b - 1번째 줄부터 5번째 줄까지 a를 b로 바꾼다.
:.,.+10s/a/b - 현재 커서위치 줄부터 현재커서위치줄 + 10줄 까지 a를 b로 바꾼다.

이런 식으로 사용할 수 있는 것이다.
이를 응용하면 정말 무궁무진해 지는데 ... 일단 여기까지만 설명 하도록 한다.
응용은 여러분드리 알아서~

마지막으로 옵션을 정리하면
g : global - 한 줄에 패턴이 여러번 나오면 모두 바꿈. 지정 안하면 줄에 첫번째 패턴만 변경
i : ignore case - 대소문자 구분 하지 않음
c : confirm - 검색된 모든 문자열에 대해서 마꿀지 말지 물어봄


No comments :

Post a Comment