Jawaban:
Notepad ++ dapat melakukan ini, asalkan Anda ingin menyortir per baris, dan menghapus duplikat baris secara bersamaan.
Anda akan membutuhkan plugin TextFX. Ini dulu termasuk dalam versi Notepad ++ yang lebih lama, tetapi jika Anda memiliki versi yang lebih baru, Anda dapat menambahkannya dari menu dengan masuk ke Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
. Dalam beberapa kasus mungkin juga disebutTextFX Characters
, tetapi ini adalah hal yang sama
Kotak centang dan tombol diperlukan sekarang akan muncul di menu di bawah: TextFX -> TextFX Tools
.
Pastikan "urutkan keluaran hanya unik ..." dicentang. Selanjutnya, pilih satu blok teks ( Ctrl+ Auntuk memilih seluruh dokumen). Terakhir, klik "sort case case sensitive" atau "sort lines case peka"
Karena Notepad ++ Versi 6 Anda dapat menggunakan regex ini dalam pencarian dan ganti dialog:
^(.*?)$\s+?^(?=.*^\1$)
dan gantikan dengan apa-apa . Ini meninggalkan dari semua baris duplikat kejadian terakhir dalam file.
Tidak diperlukan penyortiran untuk itu dan baris duplikat dapat berada di mana saja dalam file!
Anda perlu memeriksa opsi "Ekspresi reguler" dan ". Cocok dengan baris baru":
^
cocok dengan awal baris.
(.*?)
cocok dengan karakter apa saja 0 kali atau lebih, tetapi sesedikit mungkin (Cocok dengan baris, ini diperlukan karena opsi ". cocok dengan baris baru"). Baris yang cocok disimpan, karena tanda kurung di sekitar dan dapat diakses menggunakan\1
$
cocok dengan akhir baris.
\s+?^
bagian ini cocok dengan semua karakter spasi putih (baris baru!) sampai awal baris berikutnya ==> Ini menghapus baris baru setelah baris yang cocok, sehingga tidak ada baris kosong di sana setelah penggantian.
(?=.*^\1$)
ini adalah pernyataan lookahead positif. Ini adalah bagian penting dalam regex ini, satu baris hanya cocok (dan dihapus), ketika ada baris yang sama persis mengikuti tempat lain di file.
. matches newline
lakukan triknya.
Jika baris segera setelah satu sama lain maka Anda dapat menggunakan ganti regex:
Pola pencarian: ^(.*\r?\n)(\1)+
Ubah dengan: \1
^(.*\r?\n)(\1)+
Notepad ++
-> Ganti jendela
Pastikan bahwa dalam mode Pencarian Anda telah memilih tombol radio Ekspresi reguler
Menemukan apa:
^ (. *) (\ r? \ n \ 1) + $
Ubah dengan:
$ 1
Sebelum:
dan kami pikir di sana
dan kami pikir di sana
garis tunggal
Apakah mungkin
Apakah mungkin
Setelah:
dan kami pikir di sana
garis tunggal
Apakah mungkin
Jika Anda tidak peduli dengan urutan baris (yang menurut saya tidak Anda lakukan), maka Anda dapat menggunakan kotak Linux / FreeBSD / Mac OS X / Cygwin dan lakukan:
$ cat yourfile | sort | uniq > yourfile_nodups
Kemudian buka file lagi di Notepad ++.
'cat' is not recognized as an internal or external command, operable program or batch file.
cat yourfile | sort -Unique
Versi Notepad ++ yang terakhir tampaknya tidak menyertakan plugin TextFX sama sekali. Untuk menggunakan plugin untuk menyortir / menghilangkan duplikat, plugin harus diunduh dan diinstal (lebih terlibat) atau ditambahkan menggunakan manajer plugin.
A) Cara mudah (seperti dijelaskan di sini ).
Plugins -> Plugin Manager -> Show Plugin Manager -> tab Tersedia -> Karakter TextFX -> Instal
B) Cara yang lebih terlibat, jika versi lain diperlukan atau cara mudah tidak berhasil.
Unduh plugin dari SourceForge:
Buka file zip dan ekstrak NppTextFX.dll
Tempatkan NppTextFX.dll di direktori plugin Notepad ++, seperti:
C: \ Program Files \ Notepad ++ \ plugins
Mulai Notepad ++, dan TextFX akan menjadi salah satu item menu file (seperti yang terlihat pada Jawaban # 1 di atas oleh Colin Pickard)
Setelah menginstal plugin TextFX, ikuti instruksi di Jawaban # 1 untuk mengurutkan dan menghapus duplikat.
Juga, pertimbangkan untuk mengatur pintasan keyboard menggunakan Pengaturan> Shorcut mapper jika Anda sering menggunakan perintah ini atau ingin mereplikasi pintasan keyboard, seperti F9 di TextPad untuk pengurutan.
C:\Users\<your_user>\AppData\Local\Notepad++\plugins\NppTextFX
. Selain itu ini masih berfungsi dengan baik.
Dalam versi 7.8, Anda dapat melakukannya tanpa plugin - Edit -> Operasi Lini -> Hapus Garis Duplikat Berturutan. Anda harus mengurutkan file untuk menempatkan baris duplikat dalam urutan berturut-turut sebelum ini berfungsi, tetapi itu berfungsi seperti pesona.
Opsi pengurutan tersedia di Edit -> Operasi Lini -> Sortir Menurut ...
Anda mungkin memerlukan plugin untuk melakukan ini. Anda dapat mencoba baris perintah cc.ddl
(hapus baris duplikat) dari ConyEdit . Ini adalah plugin lintas-editor untuk editor teks, termasuk Notepad ++.
Dengan ConyEdit berjalan di latar belakang, ikuti langkah-langkah di bawah ini:
cc.ddl
di akhir teks. Cari ekspresi reguler: \b(\w+)\b([\w\W]*)\b\1\b
Ganti dengan: $1$2
Tekan tombol Ganti sampai tidak ada lagi yang cocok untuk ekspresi reguler di file Anda.
Tidak ada yang berhasil untuk saya.
Solusinya adalah:
Menggantikan
^(.*)\s+(\r?\n\1\s+)+$
dengan
\1
^(.*)\s+(\r?\n\1\s+)+$
dan tidak ^(.*)\s*(\r?\n\1\s*)+$
?
Pengelola plugin saat ini tidak tersedia (tidak disertai dengan distribusi) untuk Notepad ++. Anda harus menginstalnya secara manual ( https://github.com/bruderstein/nppPluginManager/releases ) dan bahkan jika Anda melakukannya, banyak plugin tidak tersedia lagi (tidak ada plugin TextFX).
Mungkin ada plugin lain yang berisi fungsionalitas yang diperlukan. Selain itu, satu-satunya cara untuk melakukannya di Notepad ++ adalah dengan menggunakan beberapa regex khusus untuk mencocokkan dan kemudian mengganti ( Ctrl+ F→ Ganti tab).
Meskipun ada banyak fungsi yang tersedia melalui Edit item menu (memotong, menghapus baris kosong, menyortir, mengkonversi EOL) tidak ada operasi "unik" yang tersedia.
Jika Anda memiliki Windows 10 maka Anda dapat mengaktifkan Bash (cukup ketik Ubuntu di Microsoft Store dan ikuti instruksi dalam deskripsi untuk menginstalnya) dan gunakan cat your_file.txt | sort | uniq > your_file_edited.txt
. Tentu saja Anda harus berada di direktori kerja yang sama dengan "your_file.txt" atau merujuknya melalui jalurnya.