metin olmadan tüm satırlar için vim arama ters arama nasıl yapılır


18

grep ile grep -v "aramam" yapabilir, tüm satırları "aramam" olmadan elde edebilirim

sed ile satırlardaki metin yerine baz bulmak yerine sed '/ baz /! s / foo / bar / g' yapabilirim

Aynı şeyi yapmanın bir yolu var mı vim. Ve mümkün ama "s ///" sözdizimi olmadan. Yalnızca "/" arama sözdizimini kullanarak.

Yanıtlar:


29
:g/pattern/

eşleşen tüm çizgiler desen bulundu.

:v/pattern/

tam tersini yapar. Daha :h globalfazla bilgi için bakınız.

Bu şekilde kullanabilirsiniz:

:v/pattern/norm Ipattern not found - <CR>

"desen bulunamadı -" ifadesini "desen" içermeyen her satıra yerleştirmek veya

:v/pattern/s/nrettap/pattern

"nrettap" yerine "desen" içermeyen her satırda "desen" ifadesini koymak.

Yapılmış örnekler, evet.


Ben "nrettap" üzerine lol'd.
amca


1

: V commandEdit kullanma Bir kalıpla eşleşmeyen satırları bulmak için geleneksel yaklaşım : v komutunu kullanmaktır :

:v/Warning/p

Gerçek aramaya başlamadan önce olabildiğince çok alakasız satırı filtrelemek istediğiniz büyük bir günlük dosyasıyla çalışırken düzgün bir numara, dosyayı geçici bir adla kaydetmek ve oradaki tüm eşleşmeyen satırları silmek:

:sav junk.log
:v/warning/d

Artık orijinal dosyanızın bir klonunu "uyarı" ile eşleşmeyen tüm satırlar kaldırılmış olarak düzenlersiniz ve istediğiniz zaman düzenleyebilirsiniz.

Ref: https://vim.fandom.com/wiki/Search_for_lines_not_containing_pattern_and_other_helpful_searches

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.