Yanıtlar:
Notepad ++, sıraya göre sıralamak ve aynı anda yinelenen satırları kaldırmak istemeniz koşuluyla bunu yapabilir.
TextFX eklentisine ihtiyacınız olacak. Bu daha önce Notepad ++ 'ın eski sürümlerine dahil edilmişti, ancak daha yeni bir sürümünüz varsa, bu öğeyi menüden ekleyebilirsiniz Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
. Bazı durumlarda da çağrılabilir TextFX Characters
, ancak bu aynı şeydir
Onay kutuları ve düğmeleri artık altında menüde görünecek gerekli: TextFX -> TextFX Tools
.
"Sıralama çıktıları yalnızca benzersiz ..." seçeneğinin işaretli olduğundan emin olun. Ardından, bir metin bloğu seçin (tüm belgeyi seçmek için Ctrl+ A). Son olarak, "satırları büyük / küçük harfe duyarlı olarak sırala" veya "satırları büyük / küçük harfe duyarlı değil" i tıklayın
Notepad ++ Sürüm 6'dan bu yana bu regex'i arama ve değiştirme iletişim kutusunda kullanabilirsiniz:
^(.*?)$\s+?^(?=.*^\1$)
ve hiçbir şeyle değiştirmeyin . Bu, tüm yinelenen satırlardan dosyadaki son olayı bırakır.
Bunun için hiçbir sıralama gerekli değildir ve yinelenen satırlar dosyanın herhangi bir yerinde olabilir!
"Normal ifade" ve ". Newline ile eşleşir" seçeneklerini işaretlemeniz gerekir:
^
satırın başlangıcıyla eşleşir.
(.*?)
0 veya daha fazla kez herhangi bir karakterle eşleşir, ancak mümkün olduğunca az (Satırla tam olarak eşleşir, ". newline ile eşleşir" seçeneği nedeniyle bu gereklidir). Eşleşen satır, etrafındaki parantezler nedeniyle saklanır ve\1
$
satır sonuyla eşleşir.
\s+?^
bu bölüm bir sonraki satırın başlangıcına kadar tüm boşluk karakterleriyle (yeni satırlar!) eşleşir ==> Bu, eşleşen satırdan sonraki yeni satırları kaldırır, böylece değiştirme işleminden sonra boş satır kalmaz.
(?=.*^\1$)
bu olumlu bir ileri doğru iddiasıdır. Bu regex'in önemli kısmı budur, bir satır sadece dosyada başka bir yeri takip eden aynı satır olduğunda eşleştirilir (ve kaldırılır).
. matches newline
hile yaptı.
Satırlar birbirinin hemen ardındaysa, normal ifadeyi kullanabilirsiniz:
Arama Deseni: ^(.*\r?\n)(\1)+
Şununla değiştir: \1
^(.*\r?\n)(\1)+
Notepad ++
-> Pencereyi değiştir
Arama modunda Normal ifade radyo düğmesini seçtiğinizden emin olun.
Ne buldun:
^ (. *) (\ R? \ N \ 1) + $
Şununla değiştir:
$ 1
Önce:
ve orada düşünüyoruz
ve orada düşünüyoruz
tek çizgi
mümkün mü
mümkün mü
Sonra:
ve orada düşünüyoruz
tek çizgi
mümkün mü
Satır sırasını umursamıyorsanız (ki bunu yaptığınızı sanmıyorum), bir Linux / FreeBSD / Mac OS X / Cygwin kutusunu kullanabilir ve şunları yapabilirsiniz:
$ cat yourfile | sort | uniq > yourfile_nodups
Sonra dosyayı yeniden Notepad ++ ile açın.
'cat' is not recognized as an internal or external command, operable program or batch file.
cat yourfile | sort -Unique
Notepad ++ 'ın sonraki sürümlerinde görünüşe göre TextFX eklentisi bulunmuyor. Eklentiyi kopyaları sıralamak / ortadan kaldırmak için kullanmak için eklentinin indirilmesi ve kurulması (daha fazla dahil) veya eklenti yöneticisi kullanılarak eklenmesi gerekir.
A) Kolay yol ( burada açıklandığı gibi ).
Eklentiler -> Eklenti Yöneticisi -> Eklenti Yöneticisini Göster -> Kullanılabilir sekmesi -> TextFX Karakterleri -> Yükle
B) Başka bir versiyona ihtiyaç duyulursa veya kolay yol çalışmazsa, daha karmaşık bir yol.
Eklentiyi SourceForge'dan indirin:
Zip dosyasını açın ve NppTextFX.dll dosyasını ayıklayın
Yeri NppTextFX.dll : gibi Notepad ++ eklentileri dizinde,
C: \ Program Files \ Notepad ++ \ plugins
Notepad ++ 'ı başlatın ve TextFX dosya menüsü öğelerinden biri olacaktır (yukarıdaki Colin Pickard tarafından 1 numaralı Cevapta görüldüğü gibi)
TextFX eklentisini yükledikten sonra, kopyaları sıralamak ve kaldırmak için Cevap # 1'deki talimatları izleyin.
Ayrıca, bu komutu sık kullanıyorsanız veya sıralama için TextPad'de F9 gibi bir klavye kısayolunu çoğaltmak istiyorsanız Ayarlar> Kısayol eşleyici'yi kullanarak bir klavye kısayolu oluşturmayı düşünün .
C:\Users\<your_user>\AppData\Local\Notepad++\plugins\NppTextFX
. Bunun dışında bu hala iyi çalışıyor.
Sürüm 7.8'de bunu herhangi bir eklenti olmadan gerçekleştirebilirsiniz - Düzenle -> Hat İşlemleri -> Ardışık Yinelenen Hatları Kaldır. Bu işe başlamadan önce yinelenen satırları ardışık sırada yerleştirmek için dosyayı sıralamanız gerekir, ancak bir cazibe gibi çalışır.
Sıralama seçenekleri Düzen -> Hat İşlemleri -> Sıralama Ölçütü ... altında bulunmaktadır.
Bunu yapmak için bir eklentiye ihtiyacınız olabilir. ConyEdit'in komut satırını cc.ddl
(yinelenen satırları silin) deneyebilirsiniz . Notepad ++ dahil olmak üzere metin editörleri için bir çapraz editör eklentisidir.
ConyEdit arka planda çalışırken aşağıdaki adımları izleyin:
cc.ddl
metnin sonuna . Normal ifadeyi arayın: \b(\w+)\b([\w\W]*)\b\1\b
Şununla değiştir: $1$2
Hit değiştirin Dosyanda normal ifadeyle artık eşleşme kadar düğmeye.
Hiçbiri benim için çalışmadı.
Bir çözüm:
değiştirmek
^(.*)\s+(\r?\n\1\s+)+$
ile
\1
^(.*)\s+(\r?\n\1\s+)+$
olmasın ^(.*)\s*(\r?\n\1\s*)+$
?
Eklenti yöneticisi şu anda Notepad ++ için kullanılamıyor (dağıtımla birlikte gelmiyor). Manuel olarak yüklemeniz gerekir ( https://github.com/bruderstein/nppPluginManager/releases ) ve bile, artık birçok eklenti kullanılamaz (TextFX yok) eklentisi.
Belki de gerekli işlevselliği içeren başka bir eklenti var. Bunun dışında, Notepad ++ ile yapmanın tek yolu, eşleştirmek ve değiştirmek için bazı özel regex kullanmaktır ( Ctrl+ F→ Değiştir Sekmeyi ).
Edit üzerinden birçok işlev olmasına rağmen menü öğesi (kırpma, boş satırları kaldırma, sıralama, EOL'yi dönüştürme) "benzersiz" bir işlem yoktur.
Windows 10'unuz varsa Bash'ı etkinleştirebilirsiniz (Microsoft Store'a Ubuntu yazın ve yüklemek için açıklamadaki talimatları izleyin) ve kullanın cat your_file.txt | sort | uniq > your_file_edited.txt
. Tabii ki "dosya_tosyası.txt" ile aynı çalışma dizininde olmalı ya da onun yolu üzerinden başvurmalısınız.