Bagaimana saya bisa mengurutkan file teks berdasarkan panjang baris di notepad ++? Apakah ada plugin yang tersedia untuk tugas yang disebutkan?
Jika tidak ada plugin, Apa tutorial pertama dan mungkin yang kedua untuk dibaca, Untuk menulis plugin sendiri?
13
Jawaban:
Jawaban ini terinspirasi oleh video YouTube . Diperbarui untuk mempertahankan urutan pengurutan asli, jika itu penting.
Notepad ++ memiliki alat TextFX bawaan yang mengurutkan garis yang dipilih secara alfabet. Alat ini dapat dibajak untuk mengurutkan berdasarkan panjang garis dengan menempatkan spasi di sebelah kiri setiap garis, dan memastikan bahwa semua garis memiliki panjang yang sama.
"The Zoo" hadir secara alfabet sebelum "Our House" karena ruang tersebut diperlakukan sebagai karakter dan muncul sebelum "i".
__X
(Berpura-pura garis bawah benar-benar spasi) juga akan datang menurut abjad sebelumnya_XX
. Gagasan dalam jawaban ini adalah menambahkan spasi dan nomor baris sehingga__________092dog
akan diurutkan di atas_003alligator
.Saya akan menggunakan yang berikut sebagai contoh data:
Langkah 1. Tambahkan nomor baris.
(Catatan ditambahkan oleh barlop- catatan untuk pembaca mengenai langkah ini, kami tidak akan mengurutkan berdasarkan nomor baris ini, kami mengurutkan berdasarkan panjang baris. Tapi alasan untuk menambahkan nomor baris, adalah karena itu kami tahu tatanan alam, sehingga ketika misalnya, dua + garis memiliki panjang yang sama kita dapat mengurutkan garis-garis itu sesuai dengan tatanan alami itu)
Dengan asumsi file teks Anda hanya memiliki data di dalamnya, tempatkan kursor teks (garis vertikal) ke posisi paling pertama dari file tersebut. Kemudian di
Edit
menu pilihColumn Editor...
( Alt+ C). Pilih "Angka untuk Disisipkan" dan mulai dengan 1, tambah 1, dan sertakan nol di depan. Perhatikan bahwa ini akan mempertahankan urutan asli ketika menyortir dari string terpendek ke string terpanjang. Balikkan semua baris terlebih dahulu jika Anda ingin mengurutkan terlama ke terpendek.Langkah 2. Pad semua garis dengan spasi terkemuka.
Tempatkan kursor teks (garis vertikal) ke posisi paling pertama dari file. Kemudian di
Edit
menu pilihColumn Editor...
( Alt+ C). Masukkan ruang yang cukup sehingga garis data terpendek akan padded ke panjang garis data terpanjang. Jika garis terpendek Anda memiliki 4 karakter, dan terpanjang Anda 44, maka pastikan Anda memasukkan setidaknya 40 spasi.Langkah 3. Pangkas garis dengan panjang yang seragam.
Gunakan Cari / Ganti Ekspresi Reguler berikut ( Ctrl+ H) untuk mencocokkan karakter kanan yang menyamai atau melebihi panjang garis data terpanjang Anda.
Ganti semua dengan
$1
. Itu akan memangkas segalanya kecuali 50 karakter paling kanan dari setiap baris. Jika data Anda lebih panjang (atau pendek) dari 50, sesuaikan{50}
dalam Ekspresi Reguler.(Catatan ditambahkan oleh barlop- ide di sini adalah garis terpendek memiliki spasi terbanyak di awal )
Langkah 4. Urutkan garis.
Pilih semua teks ( Ctrl+ A). Melalui menu TextFX, buka
Text FX > TextFX Tools > Sort lines case sensitive (at column)
. Data Anda sekarang harus dalam urutan panjang, dari yang terpendek ke yang terpanjang. Jika Anda menginginkannya dalam urutan dari terpanjang ke terpendek, hapus centangText FX > TextFX Tools > + Sort ascending
opsi sebelum mengurutkan. Perhatikan bagaimana nomor baris dibalik juga.Langkah 5. Hapus spasi memimpin.
Gunakan Cari Ekspresi Reguler lainnya ( Ctrl+ H) untuk mencocokkan spasi terkemuka.
Itu adalah ruang antara tanda sisipan dan tanda bintang. Ganti semua tanpa apa-apa. Itu akan menghapus semua spasi utama dan nomor baris yang dimasukkan, jika Anda memiliki nomor baris 4 digit. Ganti
{4}
dengan jumlah digit yang benar di nomor baris Anda.MAKRO
Saya mencatat langkah-langkah di atas menggunakan fitur makro Notepad ++, dan tidak berfungsi. Saya tidak yakin langkah mana yang gagal, tetapi saya belum mendiagnosisnya. Anda mungkin dapat menggunakan Autohotkey untuk mengotomatisasi ini jika Anda melakukannya berulang kali.
sumber
^ *\d{5}
atau berapa pun angka digit yang digunakan untuk nomor baris.Tidak, saya pikir tidak ada. Yang paling dekat adalah plugin TextFx tapi itu semacam karakter berdasarkan bukan panjang garis. Taruhan terbaik Anda adalah melempar teks ke dalam spreadsheet dan mengurutkannya di sana (menggunakan kolom yang dikomputasi terpisah menggunakan
LEN()
fungsi).sumber
Anda dapat menggunakan SQL dalam N ++ dalam file CSV! Misalnya jika Anda memiliki:
, Anda dapat menjalankan perintah
select * from data order by length(col1) desc
untuk mengurutkan turun. "data" berarti file saat ini. "col1" - nama kolom pertama (dan terakhir).Sayangnya mungkin ada bug yang tidak memungkinkan pembatas pembatas setelah baris dalam teks satu kolom.
sumber
Atau jika Anda memiliki linux dan nedit:
sumber