Zahlen via Powershell nach Anzahl der Vorkommen Absteigend sortieren
Hallo Leute,
ich sitze gerade an einer ganz tollen Aufgabe und komme nicht wirklich weiter.
In einer csv- Datei befinden sich mehrere Zeilen, welche immer mit der selben Struktur anfangen (5- stellige Zahl).
Die Aufgabe ist es nun, gleiche Zahlen zu finden und diese dann je nach Anzahl der Vorkommen absteigend zu sortieren.
Quelle CSV:
MG-Nr.|Straße|PLZ/Ort|Bundesland
Soll so aussehen:
MG-Nr.|Straße|PLZ/Ort|Bundesland
Ich habe in Powershell keine bis wenig Erfahrung...
Wie gehe ich da am Besten vor?
Eine Idee wäre, immer nach den Gleichen Nummern zu suchen und diese temporär abzulegen.
Im Anschluss könnte man dann ja die Anzahl der Zeilen herausfinden und danach eine neue CSV bauen...
Für jede Hilfe bin ich dankbar!
Gruß
David
ich sitze gerade an einer ganz tollen Aufgabe und komme nicht wirklich weiter.
In einer csv- Datei befinden sich mehrere Zeilen, welche immer mit der selben Struktur anfangen (5- stellige Zahl).
Die Aufgabe ist es nun, gleiche Zahlen zu finden und diese dann je nach Anzahl der Vorkommen absteigend zu sortieren.
Quelle CSV:
MG-Nr.|Straße|PLZ/Ort|Bundesland
Soll so aussehen:
MG-Nr.|Straße|PLZ/Ort|Bundesland
Ich habe in Powershell keine bis wenig Erfahrung...
#CSV einlesen
$a=Import-Csv -Path 'D:\sort\test.csv'
#nur die Zeilen mit den Mitgliedsnummern herausfiltern
$a | Select-String -Pattern '\d\d\d\d\d'
Wie gehe ich da am Besten vor?
Eine Idee wäre, immer nach den Gleichen Nummern zu suchen und diese temporär abzulegen.
Im Anschluss könnte man dann ja die Anzahl der Zeilen herausfinden und danach eine neue CSV bauen...
Für jede Hilfe bin ich dankbar!
Gruß
David
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 388260
Url: https://administrator.de/forum/zahlen-via-powershell-nach-anzahl-der-vorkommen-absteigend-sortieren-388260.html
Ausgedruckt am: 25.03.2025 um 06:03 Uhr
6 Kommentare
Neuester Kommentar
Servus,
kein Problem, Group-Object in Kombination mit Sort-Object ist dein Freund für dieses Vorhaben:
(Ich bin jetzt mal davon ausgegangen das deine CSV das "|" als Delimiter benutzt weil du es hier verwendet hast, wenn nicht bitte für Eingabe- und Ausgabedatei den Parameter -delimiter anpassen.)
Grüße Uwe
kein Problem, Group-Object in Kombination mit Sort-Object ist dein Freund für dieses Vorhaben:
(Ich bin jetzt mal davon ausgegangen das deine CSV das "|" als Delimiter benutzt weil du es hier verwendet hast, wenn nicht bitte für Eingabe- und Ausgabedatei den Parameter -delimiter anpassen.)
(Import-Csv -Path 'D:\sort\test.csv' -Delimiter "|") | group 'MG-Nr.' | sort Count -Descending | select -Expand Group | Export-CSV 'D:\sort\test_neu.csv' -delimiter "|" -NoType -Encoding UTF8
Grüße Uwe
Hallo David,
Dann wird als erstes nach Anzahl "aufsteigend" sortiert und zusätzlich nach dem Namen der Gruppierung (in diesem Fall ist dies ja das Feld "MG-Nr.") als "String".
Zitat von @davitzen:
diese werden aber leider nur willkürlich sortiert. (zumindest habe ich kein Muster gefunden)
Nein hier wird nichts sortiert du wolltest nur eine absteigende Gruppierung nach Anzahl, alles andere wird so eingeordnet wie es in der ursprünglichen Reihenfolge vorhanden war.diese werden aber leider nur willkürlich sortiert. (zumindest habe ich kein Muster gefunden)
Kann man Grundsätzlich alles aufsteigend sortieren und trotzdem die Häufigkeit berücksichtigen (die meisten Vorkommen ganz am Ende)?
Das kannst du, ändere dazu die Sortierroutine von oben (sort Count -Descending
) folgendermaßen ab:sort Count,Name