리눅스 vi에서 특정 패턴이 들어간 연속된 라인 제거하는 방법 문의
글쓴이: stock9343 / 작성시간: 토, 2021/05/22 - 7:16오후
안녕하세요.
리눅스의 특정 파일의 내용중에서
.SUBCKT AAA_IP
MMNP VSS VDD
MMNP1 VSS VDD
MMNN VDD VSS
MMNN1 VDD VSS
.ENDS
라는 내용이 포함되어 있을 때
.SUBCKT AAA_IP가 들어간 패턴
(시작점)에서
.ENDS(끝점)까지의 모든 내용을
제거하고 싶을 때
vi 명령을 어떻게 구성해야 되는지 문의드립니다
구글에서 vi범위 설정 시,
전부 1,0 .,$, %와 같은
사용자가 지정해야 되는 범위에 대한
설정밖에 없는데, 특정 패턴을 검색에서
범위를 시작에서 끝까지 잡고
지우거나 치환하는 방법 공유부탁드립니다
Forums:
vim에서 줄번호 말고 정규식으로 범위를 지정할 수도
vim에서 줄번호 말고 정규식으로 범위를 지정할 수도 있네요.
이런 거 안 되는 줄 알았는데 해 보니 되는군요.
그런데, 저런 범위가 복수개 있을 경우 현 커서 위치 이후 처음 등장하는 범위 하나만 삭제됩니다. 해결방법이 있는지 모르겠는데, 그냥 vim 대신 sed 쓰면 복수개의 범위 모두 삭제됩니다.
원본파일을 바로 수정하려면 아래와 같이 합니다.
제가 찾고 있던 범위를 정규표현식으로 구현하는 방법이었습니다^^
감사합니다 ㅎㅎ
구글에 아무리 찾아봐도 없길래, 문의드렸는데..
출근해서 업무에 적용해봐야 겠네요 ㅎ
감사합니다 ~~~
음 ..
https://www.google.com/search?q=vim+delete+multi-line+pattern
https://vi.stackexchange.com/questions/5265/how-to-delete-a-multi-line-match
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
올려주신 링크 내용을 보니
올려주신 링크 내용을 보니
vim에서도 g 명령을 쓰면 범위 여러 개가 일괄처리되는군요.
아래 두 방식 다 동작하네요. 덕분에 모르던 것을 배우고 갑니다.
...
스크립트를 쓰거나 여러 번 해야 하면 위의 방법이 편리한데, 눈으로 보면서 수동으로 고칠 때엔 이런 방법도 있습니다.
댓글 달기