워낙 사용방법이 무궁무진하여, 개략적으로 정리했습니다.
KLDP의 스레드를 참조하였습니다. (https://kldp.org/node/74138)
1. 사용법
vi 화면에서 command mode ( ':' 입력 ) 으로 전환 후, 입력합니다.
2. 일반적인 형식
:[범위]s/[찾을문자열]/[바꿀문자열]/[옵션]- 간단예시
:%s/abc/efg/g : 문서 전체에서 abc를 efg로 치환
- 범위
- 일반 형식 : "[시작라인],[끝라인]" , "[특수문자]"
- 예제
- 1,25 : 1행부터 25행까지
- :1,25s/a/b/g : 1행부터 25행까지 a를 b로 모두 치환
- % : 문서 처음부터 마지막까지
- :%s/a/c/g : 문서 전체에서 a를 c로 모두 치환
- .,200 : 현재 커서 행부터 200행까지
- :.,200s/a/d/g : 현재 커서 행부터 200행까지 a를 d로 모두 치환
- .,$ : 현재 커서 행부터 문서 마지막 까지
- :.,$s/a/e/g : 현재 커서 행부터 문서 마지막까지 a를 e로 모두 치환
- : [무입력] 현재 행만
- :s/a/g/g : 현재 행만 a를 g로 모두 치환
- 찾을문자열, 바꿀문자열
- 일반 형식 : [문자열], [특수문자][문자열]....
- 예제
- & : 특수문자. 찾을문자열을 대입한다.
- char/_&_ : 'char'를 '_char_'로 치환
- a/b : 일반문자열. a를 b로 치환한다.
- [정규표현식] : 문자열에는 정규표현식이 가능하며, 이를 통해 다양한 응용이 가능하다.
- \(ab\)\(cd\)\(ef\)/\3\1\2 : 각 문자열의 순서를 정렬한다. 예시의 경우 결과는 'efabcd'가 된다.
- 옵션
- g : grep. 해당 조건에 만족하는 모든 행에 수행한다. g! 인 경우, 해당 조건에 만족하는 행을 제외한 모든 행에 수행한다.
- c : choose(?). 바꿀 문자열마다 확인 및 취소를 선택할 수 있다.
- ":help s_flags" 로 옵션 조회 가능.
정규표현식을 사용하면, 정말 무궁무진한 수식이 다 나오지만, 쓰이는 빈도는 그리 많지 않을 것 같습니다. 포스트 앞부분의 링크를 따라가 보시면, 정말 많은 표현이 가능하다는 것을 보실 수 있습니다.
댓글 없음:
댓글 쓰기