717 Stimmen

Doppelte Zeilen in einer Datei finden und zählen, wie oft jede Zeile dupliziert wurde?

Angenommen, ich habe eine Datei ähnlich der folgenden:

123 
123 
234 
234 
123 
345

Ich möchte herausfinden, wie oft "123" dupliziert wurde, wie oft "234" dupliziert wurde, usw. Idealerweise würde die Ausgabe also wie folgt aussehen:

123  3 
234  2 
345  1

7 Stimmen

Welche Sprache wollen Sie verwenden?

19voto

Mohammed Nazim Punkte 133

Um doppelte Zählungen zu finden, verwenden Sie diesen Befehl:

sort filename | uniq -c | awk '{print $2, $1}'

7voto

Marc B Punkte 347897

Vorausgesetzt, Sie haben Zugang zu einer Standard-Unix-Shell und/oder Cygwin-Umgebung:

tr -s ' ' '\n' < yourfile | sort | uniq -d -c
       ^--space char

Grundsätzlich: alle Leerzeichen in Zeilenumbrüche umwandeln, dann die umgewandelte Ausgabe sortieren und diese in uniq einspeisen und doppelte Zeilen zählen.

0 Stimmen

Ich vermute, dass diese Lösung auf einen speziellen Fall von Ihnen zugeschnitten war, d. h. Sie haben eine Liste von Wörtern, die nur durch Leerzeichen oder Zeilenumbrüche getrennt sind. Wenn es sich nur um eine Liste von Zahlen handelt, die durch Zeilenumbrüche (ohne Leerzeichen) getrennt sind, wird es dort gut funktionieren, aber offensichtlich wird Ihre Lösung Zeilen mit Leerzeichen anders behandeln.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X