Textzeilen mit PowerShell sortieren

PowerShell ist zwar eine objektorientierte Kommandozeile, aber man kann auch einfachen Text mit der PowerShell bearbeiten. Hier zeige ich, wie man eine einfache Mitgliederliste mit der PowerShell sortieren kann.

Als Ausgangsdatei in den Beispielen verwende ich die Datei „mitglieder.txt“ mit dem folgenden Inhalt:

Um diese Datei nach Vornamen zu sortieren und das Ergebnis in der Datei „mitglieder-sortiert.txt“ zu speichern, genügt folgender Befehl:

Die Ergebnisdatei „mitglieder-sortiert.txt“ sieht danach so aus:

Das war einfach. Was ist aber, wenn wir nach den Nachnamen sortieren wollen?

Das müssen wir irgendwie dem Commandlet „Sort-Object“ sagen. Das tun wir, indem wir jede Zeile ($_) am Leerzeichen („\s+“) aufsplitten und das zweite Wort an „Sort-Object“ übergeben. (Die 1 steht für das zweite Wort, weil 0 für das erste Wort steht):

Die Ergebnisdatei „mitglieder-sortiert.txt“ sieht jetzt so aus:

Die beiden Sortierungen sind aufsteigend. Möchte man absteigend sortieren, dann muss man den Parameter „-Descending“ hinzufügen.

Die Ergebnisdatei sieht dann so aus:

Soviel zum Sortieren von Textdateien mit der PowerShell. Wenn man PowerShell mit den Möglichkeiten von UNIX vergleicht, dann ist PowerShell sehr wortreich. Unter UNIX würde man folgendermaßen nach Nachnamen sortieren:

Daraus darf man aber nicht schlussfolgern, dass PowerShell irgendwie schlechter ist als die UNIX-Tools. UNIX ist nun mal alt und textorientiert und PowerShell zeigt ihre wahren Stärken beim Verarbeiten von objektorientierten Commandlets.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert