특정 문자열이 들어간 라인 지우기
글쓴이: imcjswo / 작성시간: 화, 2004/09/21 - 3:48오후
vi에서 인데요 결론부터 말씀드리면
:g/찾는문자열/d 인데
이 명령의 결과가 어떻게 해서 찾는문자열을 지우는 명령어가 될까요?
g 는 global
d 가 vi의 지우는 명령어
라고 생각은 들지만
:g/찾는문자열/y (찾는 문자열 라인을 찾아 복사)하면 될거 같은데 "찾는문자열"이 들어간 마지막 라인만 복사되고 안되더군요 -_-
Forums:
:1,3d라고 하면, 1~3 번째 줄을 말합니다. 즉, 범위를 지
:1,3d
라고 하면, 1~3 번째 줄을 말합니다. 즉, 범위를 지정하는 것인데, 이와 비슷하게
:g/찾는 문자열/
이라고 하면, 가상의 범위, 즉, 찾는 문자열이 들어 있는 줄을 의미하는 것입니다.
의미는 그렇지만, 구현이 어려워서인지 생각을 다르게해야만 합니다.
d 가 중심되는 명령이 아니라 g 가 중심이 되는 명령입니다.
즉, 범위가 사용될 수 있는 모든 곳에 g 로 바꿀 수 있는 것이 아나고, g 를 통해 걸러지는 행마다 어떤 것을 적요하는 것으로 생각하시면됩니다.
따라서 맨 아래의 y 명령은 사실은 각 행마다 적용하였고 맨 마지막만 유효하게 되었다고 생각하시면 됩니다.
---
http://coolengineer.com
다른 방법도 있겠지만, "grep -v 문자열"을 활용하셔도 될 것입니다
다른 방법도 있겠지만, "grep -v 문자열"을 활용하셔도 될 것입니다. vi나 vim에서 버퍼 내용을 grep으로 보내고, 출력 결과를 되돌려 받는 방법에 대해 한번 알아보세요.
댓글 달기