더북(TheBook)

Tip vi 에디터에서 문자열 바꾸기


앞에서 환경설정을 할 때 변경이 필요한 IP는 총 11개입니다. 일일이 변경할 IP를 찾아가면서 수작업으로 변경하다 보면 수정을 빠뜨리거나 잘못해서 실수를 할 수 있습니다. 그러면 팩스택을 설치할 때 오류가 발생합니다. 여기서는 동일한 문자열을 다른 문자열로 한꺼번에 변경하는 방법을 알아보겠습니다.

vi에서 문자(열) 바꾸기는 콜론 모드에서 s 명령어를 이용합니다. 명령어를 이용하는 방법은 다음과 같습니다.

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


• 시작줄, 끝줄 : 바꿀 범위를 행 번호로 지정합니다. ‘.’는 현재 커서가 있는 줄을 의미하고, ‘$’는 마지막 줄을 의미합니다.

• 찾을 패턴, 바꿀 스트링 : 말 그대로 전자를 찾아 후자로 바꿉니다. 전자는 ‘pattern’이고, 후자는 변경할 ‘string’입니다.

가장 큰 차이점은 전자에서는 정규 표현식을 사용할 수 있다는 것입니다.

• 옵션

- g(global) : 한 줄에 패턴이 여러 번 나오면 모두 바꿉니다. 지정하지 않으면 첫 번째 패턴만 바꿉니다.

- i(ignore case) : 대소문자를 구분하지 않습니다.

- c(confirm) : 검색된 모든 문자열을 바꿀지 물어봅니다.

예로 살펴보겠습니다.

• :5,10s/a/b/ : 5번째 줄부터 10번째 줄까지 각 줄의 첫 번째 ‘a’를 ‘b’로 바꿉니다.

• :.,.+10s/a/b/g : 현재 줄부터 (현재 행 번호+10)번째 줄까지 모든 ‘a’를 ‘b’로 바꿉니다.

• :1,$s/a/b/c : 첫 번째 줄부터 마지막 줄까지(즉, 문서 전체) 각 줄의 ‘a’를 ‘b’로 바꾸되, 사용자에게 확인을 받습니다.

• :%s/a/b/gi : 역시 문서 전체에서 ‘a’와 ‘A’를 ‘b’로 바꿉니다.

• :%s/Hello/Good Morning/g : 당연히 두 글자 이상의 문자열도 검색하거나 바꿀 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.