Karşılaştırmayı satır satır yapmak kabul edilebilirse, aşağıdakiler dosyada hangi satırların çoğaltıldığını text
ve her birinin kaç kez göründüğünü söyler :
sort text | uniq -c | grep -vE '^\s*1 '
Örnek olarak,
$ cat text
alpha
beta
alpha
gamma
alpha
beta
$ sort text | uniq -c | grep -vE '^\s*1 '
3 alpha
2 beta
Her zamanki unix araçlarını kullanarak, giriş testi formatının çok karmaşık olmadığı varsayılarak, paragraf paragraf veya cümle cümle karşılaştırmalarına genişletilebilir.
Tekrarlanan Paragrafları Bulma
Diyelim ki dosyamız text
şunları içeriyor:
This is a paragraph.
This is another
paragraph
This is
a paragraph.
Last sentence.
Aşağıdaki komut, hangi paragrafların bir kereden fazla göründüğünü gösterir:
$ awk -v RS="" '{gsub(/\n/," "); print}' text | sort | uniq -c | grep -vE '^\s*1 '
2 This is a paragraph.
Bu awk
, metni paragraflara ayırmak için kullanır (boş satırlarla tanımlanır), yeni satırları boşluklara dönüştürür ve sonra yinelenen paragrafları saymak ve sıralamak için çıktıyı paragraf başına bir satır olarak geçirir.
Yukarıdakiler GNU ile test edilmiştir awk
. Diğerleri awk
için, boş satırları paragraf (kayıt) sınırları olarak tanımlama yöntemi farklılık gösterebilir.
vimdiff
burada sizi yapamaz?