Wenn der zeilenweise Vergleich akzeptabel ist, wird im Folgenden angegeben, welche Zeilen in der Datei dupliziert werden text
und wie oft jede Zeile angezeigt wird:
sort text | uniq -c | grep -vE '^\s*1 '
Als Beispiel,
$ cat text
alpha
beta
alpha
gamma
alpha
beta
$ sort text | uniq -c | grep -vE '^\s*1 '
3 alpha
2 beta
Mit den üblichen Unix-Tools könnte dies unter der Annahme, dass das Eingabetestformat nicht zu komplex ist, auf Vergleiche von Absatz zu Absatz oder Satz zu Satz erweitert werden.
Wiederholte Absätze finden
Angenommen, unsere Datei text
enthält:
This is a paragraph.
This is another
paragraph
This is
a paragraph.
Last sentence.
Der folgende Befehl zeigt an, welche Absätze mehrmals vorkommen:
$ awk -v RS="" '{gsub(/\n/," "); print}' text | sort | uniq -c | grep -vE '^\s*1 '
2 This is a paragraph.
Dies wird verwendet awk
, um den Text in Absätze aufzuteilen (durch Leerzeilen abgegrenzt), die Zeilenumbrüche in Leerzeichen umzuwandeln und dann die Ausgabe, eine Zeile pro Absatz, zum Sortieren und eindeutigen Zählen doppelter Absätze zu übergeben.
Das Obige wurde mit GNU getestet awk
. Bei anderen awk
kann sich die Methode zum Definieren von Leerzeilen als Absatz- (Datensatz-) Grenzen unterscheiden.
vimdiff
dir hier nicht?