Sublime - belirli bir değeri içeren tüm satırları silin


116

SublimeText 3'te açabileceğim 900mb'lik bir günlük dosyam var. Bu dosya aşağıdakine benzer satırlarla şişirilmiş.

10/08/2014 23:45:31:828,Information,,,,ExportManager: ,No records to send and/or not connected

İçeren tüm satırları nasıl filtreleyebilirim No records to send and/or not connected


Aşağıdaki çözümler işe yarasa da, bu tür işler gerçekten büyük dosyalar için sed / awk ile yapılmalıdır.
Bar

Yanıtlar:


229

Normal ifadede arama ve değiştirme yapabilirsiniz:

Bul> Değiştir'i tıklayın.

Normal İfade düğmesine basıldığından emin olun.

Find What alanı için şunu yazın:

^.*No records to send and/or not connected.*\n

Değiştir alanını boş bırakın.

Tümünü Değiştir'i tıklayın


16
Sonunda tam durma / dönem önemlidir, onsuz işe yaramaz. Alternatif olarak, şunu kullanabilirsiniz:^.*No records to send and/or not connected\S.*$
Navigatron

Bu çözüm, büyük bir dosya üzerinde çalışıyorsanız, tek uygulanabilir çözümdür. Ctrl+Shift+K200.000 satır seçildiğinde makinem birkaç dakika takıldı .
Przemek D

Bunu 26.000.000 satır dosyamla deneyeceğim: ')
YB Nedeni

64

Normal ifade yazmak istemeyen kişiler için - sadece arama dizesini ctrl+cmd+gseçebilir, menüden "Tümünü Hızlı Bul" u seçebilir veya her eşleşen dize için seçimler elde edebilirsiniz; oradan Homeher seçim imlecini satırın başına shift+Endtaşıyacak , eşleşen her satırı seçecek ve del, delhepsini silecektir.

Çoklu imleç düzenleme eğlencelidir!


4
Bu çok kullanışlı ve genelleştirilmiş bir ipucudur. Amacım, bir dizgi içeren tüm satırları silmekti. Sonunda bir örneğini seçtim ve ardından Leonid'in Ctrl+Cmd+Gtüm bu dizeleri seçmek için önerdiği gibi kısayol ile "QuickFind" kullandım . Bundan sonra doğrudan "Satır Sil" e gidebilirdim Ctrl-Shift-Kve cerrahi olarak bu dizgiye sahip tüm satırlar bir anda kaldırıldı. Sublime Text, şimdiye kadar kullandığım en iyi metin editörü.
MiB

Windows'ta ctrl + cmd + g ile ctrl + alt + g aynı mıdır? Bunu işe alamadım
siyah panda

@black panda Windows için "Quick Find All" alt + f3 - Teşekkürler Leonid +1
Christopher

Benim gibiyseniz ve Ana Sayfa butonunuz yoksa CMD + <- (sol ok)
Koray Tugay

4
Seçimi satıra genişletmek için cmd + L'yi de kullanabilirsiniz.
Koray Tugay

53

regex'in çalışmasını sağlayamadım, bu yüzden bu cevaptan Alt-F3 yaklaşımını kullandım:

/superuser/452189/how-can-i-filter-a-file-for-lines-containing-a-string-in-sublime-text-2/598999#598999

  1. İlgilendiğiniz diziyi seçin
  2. Hit Alt+ F3geçtiği tüm çoklu imleç moduna geçmek için ( Ctrl+ CMD+ GMac OS X)
  3. Hit Ctrl+ L[yorumlara bakınız] ( Cmd+ LMac'te)
  4. Seçimi başka bir arabelleğe kopyalayıp yapıştırın
  5. Del

2
İki şey: (1) Bunun gibi bireysel bir yanıta bağlantı kurabilirsiniz (2) Diğer yanıtı burada özetlemelisiniz (ve uygun şekilde bu soruyu yanıtlamak için onu özelleştirmelisiniz).
Conspicuous Compiler

4
CTRL + LSatır sonu dahil seçimleri tam satırlara genişleten 3. ve 4. adımları ile değiştirebilirsiniz .
Chnossos

2
Benim gibi bir MAC anahtar şemasıyla lanetlenenler Ctrl+Cmd+Giçin : tüm oluşumlarda çoklu imleç için, Cmd+Lsatırları genişletmek ve her zamanki kopyala / yapıştır
Cyril Duchon-Doris

27

Windows kullanıcıları için bulduğum şey bu:

  1. Dizeyi seçin (bu dizeyi içeren her satır kaldırılacaktır).
  2. ALT + F3 tuşlarına basın.
  3. Ctrl + L'ye basın.
  4. Sil'e basın.

21

Yukarıda önerilen normal ifade kodlarının hiçbiri benim durumumda işe yaramadı, ancak bu işe yaradı:

.*(text in question).*

Kodunuzda boş satırlara izin verecek, istediğiniz bu mu? Değilse, eklemek \nveya $: sonunda.*(text in question).*\n
kullanıcı

Satırlar "abc / xyz / bir şey" benzeri yapıya sahipse, normal ifadeyi kullanmak için '\' ekleyin. Örneğin, abc / ve / bir şey arasında bir şey aramak zorunda kalırsak, ifade şu olacaktır: abc /\.*.*\/ bir şey
Avik

Benim için çalışıyor, Benim yaptığım gibi birden fazla eşleşmeye ihtiyacınız varsa, şöyle kullanın |:.*(a).*|.*(b).*|.*(c).*
bryc

0

Bir site haritasını düzenlerken benzer bir sorunla karşılaştım

Bu benim için çalıştı:

  1. Silmek istediğiniz satırlardaki son kelimeyi kopyalayın
  2. Hepsini bul
  3. Tüm satırı silmek için sil'e basın

0

Yukarıdaki cevaplar doğru yollardır, ancak tek bir dizeyle bile satırlardan kurtulmak istiyorsanız, o zaman yapın, Bul -> Değiştir -> ^.*[a-zA-Z]+.*\nbul bölümüne koyun ve boşla değiştirin. Tümünü değiştir düğmesine basın, bu, içinde tek bir dize olan tüm satırları silecektir.

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.