빈줄 삭제
:g/^$/d
명령모드에서 v 를 누른 후
1행을 제외하고 블럭을 씌웁니다.
그리고 ex모드에서
g/^Getting/d
를 하면 1행을 제외한 나머지 중에서 Getting 으로 시작하는 모든 행이 삭제됩니다.
------ 부가설명
vi에는 명령 모드 , ex모드, 삽입(insert) 모드 이렇게 3가지 모드가 있습니다.
질문하신 내용으로 보아, 아실 듯 ^^
1행을 제외한 나머지 행을 블럭을 씌우려면
gg 명령으로 가장 첫 줄로 이동한 후에
j로 한줄을 내려와
v로 블럭을 씌울 수 있게 한 후
G로 가장 아래 줄로 이동.
요약하면 ggjvG 다섯번만 손가락을 누르면 됩니다.
이동시 직접 줄 번호를 지정하거나
블럭을 씌우지 않고 ex명령만으로도 할 수 있으나
이렇게 하는 것이 직관적이고 손가락도 덜 움직이는 것 같습니다.
:g/특정문자열/d
위와 같은 ex명령은 특정문자열이 있는 라인을 삭제합니다.
조심해야 할 점이 있다면
의도하지 않은 라인까지 삭제할 가능성이 있다는 것 입니다.
예를 들면,
:% g/ting/d
ting 이라는 단어가 있는 줄을 지우려고 했는데
getting, meeting , hunting 등등의 단어가 있는 줄도 지우는 경우가 생길 수 있습니다.
이런 것을 막으려면 특정 문자열 또는 단어의 앞 뒤로 \< 와 \> 를 감싸주면
해당 단어만을 의미할 수 있습니다.
:% g/\<ting\>/d 라고 하면 ting 앞 뒤로 알파벳이 붙지 않은 오직 ting 이라는 단어만 들어 있는 줄을 삭제합니다.
% 기호는 전체라인을 의미합니다.
^ 기호는 라인의 시작을 의미합니다.
'*nix' 카테고리의 다른 글
Unix 프로세스 Job Control (0) | 2010.06.14 |
---|---|
sed 사용법 (0) | 2010.06.01 |
로그파일 가공하기 (0) | 2010.05.17 |
awk 사용법 (0) | 2010.05.17 |
[AIX] 한글 로케일 (0) | 2010.01.20 |