Apakah ada cara mudah untuk mengidentifikasi duplikat atau hampir duplikat blok teks dalam file?
Saya ingin menggunakan ini untuk mengidentifikasi duplikasi kode. Sepertinya ada program khusus dengan kemampuan ini, tetapi saya tidak ingin terlibat.
Saya berharap ada alat yang mirip dengan diff yang akan dapat melakukan semacam "dalam file" diff. Bahkan lebih baik dalam vimdiff file tunggal.
text-processing
diff
vimdiff
Praxeolitic
sumber
sumber
vimdiff
tidak Anda lakukan di sini?Jawaban:
Jika melakukan perbandingan baris demi baris dapat diterima, maka yang berikut akan memberi tahu baris mana yang diduplikasi dalam file
text
dan berapa kali masing-masing muncul:Sebagai contoh,
Menggunakan alat unix yang biasa, ini dapat diperluas, dengan asumsi format tes input tidak terlalu rumit, untuk perbandingan paragraf demi paragraf atau kalimat-demi-kalimat.
Menemukan Paragraf Berulang
Misalkan file kita
text
mengandung:Perintah berikut mengidentifikasi menunjukkan paragraf mana yang muncul lebih dari sekali:
Ini digunakan
awk
untuk memecah teks menjadi paragraf (digambarkan dengan baris kosong), mengubah baris baru menjadi spasi, dan kemudian meneruskan output, satu baris per paragraf, untuk mengurutkan dan uniq untuk menghitung paragraf yang digandakan.Di atas diuji dengan GNU
awk
. Untuk yang lainawk
, metode untuk mendefinisikan baris kosong sebagai batas paragraf (catatan) mungkin berbeda.sumber