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:
sort text | uniq -c | grep -vE '^\s*1 '
Sebagai contoh,
$ cat text
alpha
beta
alpha
gamma
alpha
beta
$ sort text | uniq -c | grep -vE '^\s*1 '
3 alpha
2 beta
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:
This is a paragraph.
This is another
paragraph
This is
a paragraph.
Last sentence.
Perintah berikut mengidentifikasi menunjukkan paragraf mana yang muncul lebih dari sekali:
$ awk -v RS="" '{gsub(/\n/," "); print}' text | sort | uniq -c | grep -vE '^\s*1 '
2 This is a paragraph.
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 lain awk
, metode untuk mendefinisikan baris kosong sebagai batas paragraf (catatan) mungkin berbeda.
vimdiff
tidak Anda lakukan di sini?