약 1,000줄 정도의 대용량 파일이 있고 다음이 필요하다고 가정해 보겠습니다.다음 줄을 삭제하세요.특정 패턴을 다음과 같이 부릅니다 somePatern
.
상황:
/somePattern
수동으로 수행할 수 없습니다(검색 및/또는 수동으로 행 아래로 이동하여 삭제할 수 없음 ).- 단일 안감이 가장 좋습니다.
- 패턴이 포함된 줄 다음의 줄은 사라져야 합니다(빈 줄 없음).
- UNIX와 호환되어야 합니다. (나는 Debian을 사용하지만 UNIX에는 필요합니다. 둘 다 작동한다면 좋을 것입니다.)
또한 누구든지 이 내용과 더 많은 정규식 내용을 배울 수 있는 웹사이트에 대한 링크가 있다면 좋을 것입니다! (하지만 초보형이 아니기 때문에 적어봤습니다. 감사 vimtutor
하고 다른 분들의 호의에 감사드립니다.)
답변1
g/somepattern/+d
아래 예에서는 baz가 제거되었습니다. (하지만 Vim으로만 확인했습니다.)
foo
bar
somepattern
baz
someotherpattern
답변2
구경하다여기섹션 3.2 "작동 범위, 행 주소 지정 및 표시"에서. Vim 명령은 이전 줄 범위를 허용할 수 있는 것 같습니다. 줄 범위를 지정하면 명령 실행을 텍스트의 특정 부분으로만 제한할 수 있습니다.
예를 들어:
/pattern[/]
"pattern" 텍스트와 일치하는 다음 줄
?pattern[?]
"pattern" 텍스트와 일치하는 이전 줄