Yanıtlar:
Bunu başarmanın kolay bir yolu var. 3 adım yapmanız gerekiyor.
Arama menüsü> Bul ...> "İşaretle" sekmesini seçin. Düzenli ifadeleri etkinleştirin. Ara ^<Path>
( ^
satır başlangıcı içindir). "Satır satırlarını" işaretlemeyi ve "Tümünü İşaretle" ye basmayı unutmayın
==> Saklamak istediğiniz Tüm Satırlar Yer İşareti var
"Ara - Yer İşareti - Ters Yer İşareti" Menüsüne gidin
==> Silmek istediğiniz tüm satırlar yer imlerine eklenmiştir.
"Ara - Yer İşareti - İşaretlenmiş satırları kaldır" menüsüne gidin
==> Tüm Sık Kullanılanlar satırları silindi.
Bu aslında 6.3'ten itibaren iki adımda yapılabilir. İlk denememde 5,9 olandan daha erken yapılabileceğini düşünüyorum.
Stema'nın gönderisini bu cevabın temeli olarak kullanmak. Şimdi daha az bir adım var. Çizgileri işaretleyin ve işaretlenmemiş çizgileri kaldırın. Bitti. Ayrıntılı talimatlar izleyin.
Arama menüsü "Bul". Bul iletişim kutusunda "İşaretle" sekmesini tıklayın. Düzenli ifadeleri etkinleştirin. Ara ^<Path>
( ^
satır başlangıcı içindir). "Satır satırlarını" işaretlemeyi ve "Tümünü İşaretle" ye basmayı unutmayın
==> Şimdi saklamak istediğiniz tüm Satırlarda bir Yer İşareti var
Arama Menüsü -> Yer İşareti -> İşaretsiz Çizgileri Kaldır.
==> Tüm NON İşaretlenmemiş satırlar silinir.
^
Arama terimimi eklememe, düzenli ifade kullanmama gerek yoktu . Umarım bu birine yardımcı olur.
regex yerine
(?!^.*test.*$)^.+
testi istediğiniz metinle değiştirin
değiştirmek
[\r\n]{2,}
ile \r\n
^(?!<Path>).*\r\n
Eşleşmeleri boş dizeyle değiştirmek için kullanın . Genelleştirilmiş sürüm olacaktır ^(?!.*?test).*\r\n
. Bu, dosyanın sonundaki boş satırı kaldırmaz. Ardışık boş satırlar da dahil olmak üzere diğer tüm satırlar kaldırılır.
(?!)
olumsuz bir görünümdür. ^.*test.*$
istenen metni içeren tüm satırı seçer.
[\r\n]{2,}
\r\n
Windows New satırı olduğunda, daha sonra gerçekleşenlerle eşleşir . Linux veya başka bir işletim sisteminiz varsa, bununla uğraşmanız gerekebilir. ikincisi, onu bir dönüş çizgisiyle değiştirmektir.
\r\n
Yazı belirtilen EOL, Windows ya da aradığınızı olabilir ya da olmayabilir, bu nedenle kullanır ve budur. Genellikle Linux ortamlarında sadece \n
, ya da Mac ortamlarında sadece \r
, yani bir dosyadan birini çekerseniz, Windows tarzı EOL olmaz. Bununla birlikte, FileZilla ve ASCII modu tetikleyicileri yoluyla indirirseniz, tekrar Windows EOL'ye\n
dönüştürebilir (gibi \r\n
). Öyleyse, regex çalışmıyorsa, "Görünüm> Sembolleri Göster> Satır Sonunu Göster" e giderek EOL stilini kontrol edin. CR = \r
. LF = \n
.
Bana göre en kolay yol, yalnızca "Geçerli Belgede Tümünü Bul" özelliğini kullanmak ve ardından sonuçları yeni bir dosyaya kopyalamak veya tümünü seçip geçerli olanı seçmektir.
Bu, metninizi içeren tüm satırları bulur ve altta listeler. Sadece arama sonucunu sağ tıklayın ve kopyala / yapıştır.
\tLine [\d]*:
. Yine de harika bir cevap.
Menüde Ara -> Bul ... -> Normal ifadeleri etkinleştirin. "^ Yol " için arama yapın (^ satır başlangıcı içindir).
"Geçerli Belgede Tümünü Bul" düğmesine tıklayın.
"Sonuç bul" penceresi, desenin tüm satırlarında görünecektir. Not Defteri ++ 'da bunları yeni bir sekmeye kopyala / yapıştır'ı seçin.
Bu yeni sekmede, aşağıdakilere gidin: menü Arama -> Değiştir ... -> Normal ifadeleri etkinleştirin.
"Neyi bul:" alanında, "Line \ d +:" satırını kullanın. "Şununla değiştir:" alanını boş bırakın.
"Tümünü değiştir" düğmesine tıklayın.
<Path>
Bir dosya sistemi yolu ile gerçekten eşleşmek istemiyorsanız , bunu Perl kullanarak bir komut satırından deneyebilirsiniz:
perl -pe " if ($_ !~ /<Path>/) { s/$_// } " < in.txt > out.txt
Windows'ta Strawberry Perl ile çalıştı, bu nedenle sonuçlar beklediğiniz gibi değilse buna göre ayarlayın.
Sakar, ancak hepsini Excel'e=IF(LEFT(A1,6)="<Path>",A1,"")
kopyalayın ve sonra bu formülü sonuna kadar kullanın ve kopyalayın. Sonra onu Notepad ++ 'a geri kopyalayın. İdeal değil ama oldukça kolay (eğer Excel'iniz varsa). Uyarı: Girintili çizgilerle iyi çalışmaz (Excel sütunları vs. değiştirir).
Notepad ++ ile istediğinizi yapmanın kolay bir yolu yoktur. Bilgisayarınıza bir program indirmeniz veya VB'de bir şeyler yazmanız gerekir (Sanırım Windows'dasınız).
Sed ile iki yoldan birini istediğinizi yapabilirsiniz. Sed yardımcı programı * nix'te bir favoridir ve Windows için GnuWin'deki harika insanlardan bulunabilir ( http://gnuwin32.sourceforge.net/packages/sed.htm ). Bu programı indirir ve komutunuzu komut isteminden çalıştırırsınız.
İçermeyen tüm satırları sil:
sed -i '/^<PATH>/!d' file
Tüm satırları yeni bir dosyaya yazdır:
sed -n '/^<PATH>/p' file > newfile
İstediğiniz satırları yeni bir dosyaya yazdırmanızı öneririm. Bunun nedeni, muhtemelen ilk defa regex ifadesini almamanızdır. Sed yardımcı programı Normal İfade Temel Sözdizimini kullanır (referansı http://www.regular-expressions.info/reference.html adresinden görüntüleyin ). Bir * nix yolu (/ var / www) gibi bir şey ise, regex'inizin çalışması için / karakterinden kaçmanız gerekir.
Örnek: sed -n '/^\/var\/www/p' file > newfile
Bu, '/ var / www' ile başlayan tüm satırları basacaktır. / Karakterinden kaçmak için dosyalama yapsaydım, komut bir hataya yol açardı. Ters eğik çizgi karakteriyle özel bir karakterden (/ gibi) kaçabilirsiniz.
Ara-> Değiştir'i kullanın ve normal bir ifade girin ^[^ ].*
ve hepsini kullanarak boş bir dize ile değiştirin Regular expression
. Sonraki adım boş satırlar için arama bulmaktır \n\n
ile değiştirerek \n
kullanarak Extended
dek birçok kez 0 occurrences were found.
(kullanım \r\n\r\n
ve \r\n
dosya formatına bağlı olarak). Bir satırda çok fazla boş satır varsa , arama dizisinde kullanımı \n\n\n\n\n\n\n
veya daha da fazlası \n
: s.