Apakah mungkin untuk menghilangkan duplikasi baris di Notepad++, meninggalkan hanya satu kejadian dari garis?
Notepad++ dapat melakukan hal ini, asalkan anda ingin mengurutkan berdasarkan garis, dan menghapus duplikat baris pada saat yang sama.
Anda akan membutuhkan TextFX plugin. Ini digunakan untuk dimasukkan dalam versi Notepad++, tetapi jika anda memiliki versi yang lebih baru, anda dapat menambahkannya dari menu dengan pergi ke Plugin -> Plugin Manager -> Menunjukkan Plugin Manager -> Tersedia tab -> TextFX -> Install
. Dalam beberapa kasus hal ini juga dapat disebut TextFX Karakter
, tapi ini adalah hal yang sama
Kotak centang dan tombol yang diperlukan sekarang akan muncul dalam menu di bawah: TextFX -> TextFX Alat
.
Pastikan "semacam output hanya unik..." diperiksa. Selanjutnya, pilih blok teks (Pilih+A untuk memilih seluruh dokumen). Akhirnya, klik "semacam garis peka" atau "semacam garis case sensitive"
Sejak Notepad++ Versi 6 anda dapat menggunakan ekspresi reguler ini dalam pencarian dan mengganti dialogue:
^(.*?)$\s+?^(?=.*^\1$)
dan ganti dengan apa-apa. Daun ini dari semua duplikat kejadian terakhir dalam file.
Tidak ada pemilahan yang diperlukan untuk itu dan duplikat dapat di mana saja di file!
Anda perlu memeriksa pilihan "ekspresi Reguler" dan ". pertandingan newline":
^
pertandingan awal baris.
(.*?)
cocok dengan semua karakter 0 kali atau lebih, tetapi sesedikit mungkin (Itu pertandingan tepatnya pada baris, hal ini diperlukan karena ". pertandingan newline" opsi). Cocok turut disimpan, karena tanda kurung di sekitar dan dapat diakses menggunakan \1
$
pertandingan akhir baris.
\ \ \ \ s+?^
bagian ini cocok dengan semua karakter spasi putih (baris baru!) sampai awal baris berikutnya ==> Ini akan menghapus baris baru setelah matchd baris, sehingga tidak ada baris kosong yang ada setelah pengganti.
(?=.*^\1$)
ini adalah positif lookahead pernyataan. Ini adalah bagian penting dalam regex, turut hanya cocok (dan dihapus), ketika ada yang sama persis baris berikut ini di tempat lain dalam file.
Jika baris yang segera setelah satu sama lain maka anda bisa menggunakan regex ganti:
Pola Pencarian: ^(.*\r?\n)(\1)+
Ganti dengan: \1
Notepad++
-> Mengganti jendela
Memastikan bahwa dalam mode Pencarian, anda telah memilih ekspresi Reguler tombol radio
Cari apa yang:
^(.*)(\r?\n\1)+$
Ganti dengan:
$1
Sebelumnya:
dan kami pikir ada
dan kami pikir ada
satu baris
Apakah mungkin untuk
Apakah mungkin untuk
Setelah:
dan kami pikir ada
satu baris
Apakah mungkin untuk
Jika anda don't peduli baris perintah (yang saya don't pikir anda lakukan), maka anda dapat menggunakan Linux/FreeBSD/Mac OS X/Cygwin kotak dan lakukan:
$ cat yourfile | sort | uniq > yourfile_nodups
Kemudian buka lagi file tersebut pada Notepad++.
Kedua versi dari Notepad++ jangan rupanya termasuk TextFX plugin sama sekali. Dalam rangka untuk menggunakan plugin untuk menyortir/menghilangkan duplikat, plugin harus didownload dan diinstal (lebih terlibat) atau ditambahkan dengan menggunakan plugin manager.
A) cara Mudah (seperti yang dijelaskan di sini).
Plugin -> Plugin Manager -> Menunjukkan Plugin Manager -> Tersedia tab -> TextFX Karakter -> Install
B) Lebih terlibat way, jika versi lain yang diperlukan atau cara mudah tidak bekerja.
Membuka file zip dan ekstrak NppTextFX.dll
Tempat NppTextFX.dll di Notepad++ direktori plugin, seperti:
C:\Program Files\Notepad++\plugins
Jalankan Notepad++, dan TextFX akan menjadi salah satu dari file menu item (seperti yang terlihat dalam Jawaban #1 di atas oleh Colin Pickard)
Setelah menginstal TextFX plugin, ikuti petunjuk Jawaban yang #1 untuk menyortir dan menghapus duplikat.
Juga, pertimbangkan untuk membuat shortcut keyboard menggunakan Pengaturan > Shorcut mapper jika anda menggunakan perintah ini sering atau ingin meniru cara pintas keyboard, seperti F9 di TextPad untuk menyortir.
Anda mungkin membutuhkan sebuah plugin untuk melakukan hal ini. Anda dapat mencoba perintah line cc.ddl
(menghapus duplikat garis) dari ConyEdit. Ini adalah cross-plugin editor untuk editor teks, seperti Notepad++.
Dengan ConyEdit berjalan di latar belakang, ikuti langkah-langkah di bawah ini:
cc.ddl
di akhir teks. Pencarian untuk ekspresi reguler: \b(\w+)\b([\w\W]*)\b\1\b
Ganti dengan: $1$2
Tekan Ganti tombol sampai tidak ada lagi pertandingan untuk ekspresi reguler dalam file anda.
Tidak bekerja untuk saya.
Solusi adalah:
Mengganti
^(.*)\s+(\r?\n\1\s+)+$
dengan
\1
Plugin manager saat ini tidak tersedia (tidak datang 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 TextFX) plugin.
Mungkin ada plugin lain yang berisi fungsi-fungsi yang dibutuhkan. Lain dari itu, satu-satunya cara untuk melakukan itu di Notepad++ adalah dengan menggunakan beberapa khusus regex untuk pencocokan dan kemudian mengganti (Pilih + A → Ganti tab).
Meskipun ada banyak fungsi yang tersedia melalui Edit item menu (pemangkasan, menghapus baris kosong, menyortir, mengubah EOL) tidak ada "unik" operasi yang tersedia.
Jika anda memiliki Windows 10 maka anda bisa aktifkan Bash (hanya tipe Ubuntu di Microsoft Store dan ikuti petunjuk di bagian keterangan untuk menginstalnya) dan menggunakan kucing your_file.txt | sort | uniq > your_file_edited.txt
. Tentu saja anda harus di sama direktori kerja sebagai "your_file.txt" atau merujuk untuk itu melalui jalan.
Dalam versi 7.8, anda dapat mencapai hal ini tanpa plugin - Edit -> Operasi Baris -> Hapus Duplikat Berturut-turut Garis. Anda akan memiliki untuk mengurutkan file ke tempat duplikat baris dalam urutan berturut-turut sebelum ini bekerja, tetapi tidak bekerja seperti pesona.