VI 에서 유용한 찾기/바꾸기 명령들
1. 문서 처음부터 마지막까지의 char 를 _char_ 로 치환한다.
:%s/char/_&_/g
2. 현재(커서위치)부터 마지막까지의 char 를 _char_ 로 치환한다.
:.,$s/char/_&_/g
3. buf_.*[255], buf_in[255], buf_get[255] 와 같은 문자열을 hello 로 변경한다.
:1,10s/buf_.*\[255\]/hello/g
4. 숫자로만 이루어진 행 찾기는 다음과 같습니다.
/^\d\+$
^ : 행의 첫부분
\d : 0~9까지의 숫자
+ : 바로 앞의 글자 (여기서는 숫자)가 1개나 1개 이상 있음. (즉 숫자가 최소한 1개 있음)
$ : 행의 마지막 부분
5. 전체 문서에서 add 를 plus로 치환
:s/add/plus/g
6. 현재 편집중인 전체 문서에서 /etc/ 를 /etc/local/ 로 치환
:s/\/etc\//\/etc\/local\//g
7. '앗싸좋구나108계단' 이 '좋구나108계단앗싸' 로 바뀝니다.
:%s/\(앗싸\)\(좋구나\)\(108계단\)/\2\3\1/g
8. 대소문자 구분없이 바꾸려면 i 옵션을 붙입니다. 이것은 ".vimrc" 파일을 고치지 않아도 작동합니다.
:%s/foo/bar/i
9. 정확하게 foo에 일치될 때만 바꿉니다. 즉 foo는 바꾸지만, foo 앞뒤로 다른 문자열이 붙어 있는 경우에는 바꾸지 않습니다.
:%s/\/bar
10. 정렬
123 def ghi
432 ius dkf
089 cdo lks
이걸 숫자를 가운데로, 두번째는 끝, 세번째 처음으로 보내려면
:%s/\([0-9]*\) \([a-z]*\) \([a-z]*\)/\3 \2 \1/g
11. 만약 3~5자리로 이루어진 모든 숫자를 검색하고 싶다면 다음과 같이 입력한다.
/[0123456789]\{3,5\} 또는
/[0-9]\{3,5\}
12. 만약 `ab'로 시작하는 소문자로 되어 있는 모든 단어를 삭제하려면 다음과 같이 입력한다.
:%s/ab[a-z]*//g
13. 만약 test라는 파일에 cpu가 들어있는 라인을 모조리 지우고자 한다면 vi mode에서 아래와 같이 사용한다.
:g/cpu/d
# g는 모든 라인에 적용한다라는 의미이고,
# d는 delete를 의미합니다.
14. stat0,stat1.....stat9 패턴이 있는 라인을 모조리 지우기
:g/stat[0-9]/d
15. 빈 줄 두 줄을 한 줄로 바꾸기
:%s/\n\n/\n/g
16. 두 칸을 한 칸으로 줄이기
:%s/ / /g
17. 탭을 스페이스 공백으로 바꾸기
:%s/\t/ /g
18. 마지막에 한 칸 띠우고 엔터된 것을 바로 엔터한 것으로 고치기
:%s/ $//g 또는
:%s/ \n/\n/g
19. 줄 첫 칸의 띠어쓰기를 없애기
:%s/^ //g
20. 잘못 바꾸기를 했을 때 되돌리려면 그냥 u 키를 누르면 됩니다.
'Database & Server Tip > Linux' 카테고리의 다른 글
[Linux/Unix] VI 사용법! 명령어 모음 (0) | 2016.04.08 |
---|---|
[설치] APM 소스 설치시 주요 에러 해결 방법 (0) | 2015.04.02 |
Linux iptabes 설정 (0) | 2014.11.24 |
[쉘스크립트] shell Scaript 주요 비교구문 (0) | 2014.06.16 |
[명령어] tar 명령의 활용 - 디렉토리 목록만 묶기 (0) | 2014.06.12 |