PowerShell • • 1 Min. Lesezeit
String als Integer sortieren
Ein einfacher PowerShell-Trick, um Strings numerisch mit -as [int] zu sortieren – unverzichtbar bei Versionsnummern oder ID-Strings.
Zweimal im Jahr muss ich einen String als Integer sortieren. Mit PowerShell ist das wirklich einfach.
Ohne Umwandlung sortiert Sort-Object lexikographisch – "199" kommt also vor "23":
"199", "23", "89" | Sort-Object
# Ausgabe: 199, 23, 89 (falsche Reihenfolge)
Die Lösung ist, innerhalb eines Skriptblocks nach [int] umzuwandeln:
"199", "23", "89" | Sort-Object -Property { $_ -as [int] }
# Ausgabe: 23, 89, 199 (korrekte Reihenfolge)
Dieser Tipp stammt von Mathias R. Jessen. Er behandelt auch fortgeschrittenere Fälle – zum Beispiel das numerische Sortieren gemischter Strings wie IR343 und IR1342 – in seiner RegEx-Session auf der PSConfEU.