문제

"+"또는 "-"로 시작하지 않는 모든 줄을 삭제하려면 정규 표현식을 찾아야합니다.

큰 Diff 파일의 용지 사본을 인쇄하고 싶지만 실제 Diff 전후에 5 줄 정도가 표시됩니다.

도움이 되었습니까?

해결책

VIM에서 :

:g!/^[+-]/d

영어 번역은 다음과 같습니다.

gLobally는 그렇지 않은 모든 줄에 무언가를합니다! 정규 표현식 : 라인의 시작과 일치하십시오^ 그 뒤에 + 또는 -, 그리고 그 일이 그럴 것입니다 d그 선을 엘레트하십시오.

다른 팁

sed -e '/^[^+ -]/d'

diff -u <some args here> | grep '^[+-]'

또는 추가 라인을 전혀 생성 할 수 없습니다.

diff --unified=0 <some args>

cat your_diff_file | sed '/^[+-]/!D'
egrep "^[+-]" difffile >outputfile

일치하지 않는 모든 것을 삭제하는 대신 일치하는 라인 만 표시됩니다. :)

정규 표현식에서 더 복잡한 일을 해야하는 경우이 사이트를 사용해야합니다.http://txt2re.com/

또한 다양한 언어에 대한 코드 예제도 제공합니다.

%!grep -Ev '^[+-]'

현재 파일에서 인라인을 인라인하고보다 훨씬 빠를 수 있습니다. :v 큰 파일의 경우.

VIM 7.4, Ubuntu 14.04, 1m 라인 로그 파일에서 테스트.

단어가 포함되지 않은 줄 : https://superuser.com/questions/265085/vim-delete-all-lines-that-do-not-contain-a-cential-word/1187212#1187212

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top