Wie man Array-Werte mit PowerShell sortiert

  1. Arraywerte in PowerShell mit dem Cmdlet Sort-Object sortieren
  2. Arraywerte in PowerShell mit der Methode [Array]::Sort() sortieren
  3. Fazit
Wie man Array-Werte mit PowerShell sortiert

Das Sortieren von Arrays ist eine gängige und wesentliche Aufgabe in PowerShell-Skripting, die eine effiziente Datenorganisation und -manipulation ermöglicht. Egal, ob es sich um numerische, String- oder benutzerdefinierte Objekt-Arrays handelt, PowerShell bietet vielseitige Werkzeuge zum Sortieren.

In diesem umfassenden Artikel werden wir verschiedene Methoden und Techniken zum Sortieren von Arraywerten erkunden, die auf verschiedene Szenarien und Vorlieben abgestimmt sind.

Arraywerte in PowerShell mit dem Cmdlet Sort-Object sortieren

Das Cmdlet Sort-Object bietet eine bequeme und vielseitige Möglichkeit, Arraywerte in aufsteigender oder absteigender Reihenfolge basierend auf verschiedenen Kriterien anzuordnen. Es ist nicht auf Arrays beschränkt und kann mit jeder Sammlung von Objekten verwendet werden.

Beim Sortieren von Arrays wird jedes Element im Array als Objekt betrachtet, und das Cmdlet Sort-Object wird entsprechend angewendet.

Die grundlegende Syntax des Cmdlets Sort-Object ist wie folgt:

<array> | Sort-Object [-Property <property>] [-Descending] [-Culture <culture>] [-Unique]

Wobei:

  • <array>: Das Array darstellt, das sortiert werden soll.
  • -Property: Die Eigenschaft angibt, basierend auf der die Sortierung durchgeführt werden soll. Wenn nicht angegeben, verwendet PowerShell die standardmäßigen Sortiereigenschaften des ersten Eingabeobjekts.
  • -Descending: Sortiert die Objekte in absteigender Reihenfolge. Wenn dieser Parameter nicht verwendet wird, erfolgt die Sortierung in aufsteigender Reihenfolge.
  • -Culture: Die Kultur angibt, die für die Sortierung verwendet werden soll. Dies ist optional und standardmäßig auf die aktuelle Kultur eingestellt.
  • -Unique: Stellt sicher, dass die sortierte Liste eindeutige Elemente enthält.

Lassen Sie uns in praktische Beispiele eintauchen, um zu verstehen, wie man das Cmdlet Sort-Object zum Sortieren von Arraywerten verwendet.

Beispiel 1: Sortieren in aufsteigender Reihenfolge

$numbers = 4, 2, 7, 1, 5
$sortedNumbers = $numbers | Sort-Object
$sortedNumbers

Hier haben wir ein Array von Zahlen, das in der Variablen $numbers gespeichert ist. Durch das Pipen dieses Arrays zum Sort-Object sortieren wir die Zahlen in aufsteigender Reihenfolge.

Das sortierte Array wird in $sortedNumbers gespeichert.

Ausgabe:

1
2
4
5
7

Beispiel 2: Sortieren in absteigender Reihenfolge

$cities = "New York", "London", "Paris", "Tokyo", "Sydney"
$sortedCitiesDescending = $cities | Sort-Object -Descending
$sortedCitiesDescending

In diesem Beispiel enthält das Array $cities Städtenamen. Wir verwenden den Parameter -Descending, um sie in absteigender Reihenfolge zu sortieren, und das Ergebnis wird in $sortedCitiesDescending gespeichert.

Ausgabe:

Tokyo
Sydney
Paris
New York
London

Beispiel 3: Sortieren von Objekten basierend auf einer Eigenschaft

$people = @( [PSCustomObject]@{ Name = "Alice"; Age = 25 },
    [PSCustomObject]@{ Name = "Bob"; Age = 30 },
    [PSCustomObject]@{ Name = "Charlie"; Age = 22 } )
$sortedPeople = $people | Sort-Object Age
$sortedPeople

In diesem Beispiel haben wir ein Array von benutzerdefinierten Objekten, die Personen mit den Eigenschaften Name und Age darstellen. Wir verwenden Sort-Object mit dem Parameter -Property, um das Array basierend auf der Eigenschaft Age zu sortieren.

Ausgabe:

Name    Age
----    ---
Charlie  22
Alice    25
Bob      30

Diese Beispiele zeigen die Flexibilität und Leistungsfähigkeit des Cmdlets Sort-Object beim Sortieren von Arraywerten in PowerShell. Egal, ob Sie mit einfachen Arrays oder Arrays komplexer Objekte arbeiten, Sort-Object bietet eine unkomplizierte und effektive Lösung.

Arraywerte in PowerShell mit der Methode [Array]::Sort() sortieren

Während das Cmdlet Sort-Object ein mächtiges Werkzeug zum Sortieren von Arrays ist, bietet PowerShell auch die Methode [Array]::Sort(), ein Mitglied der Klasse [Array] in .NET. Diese Methode wurde speziell für das Sortieren von Arrays entwickelt. Sie ändert die Reihenfolge der Elemente im ursprünglichen Array direkt und stellt einen Sortieralgorithmus in place dar.

Die Syntax zur Verwendung der Methode [Array]::Sort() ist wie folgt:

[Array]::Sort(<array>)
  • <array>: Das Array darstellt, das sortiert werden soll.

Lassen Sie uns einige Beispiele ansehen, um zu verstehen, wie man die Methode [Array]::Sort() zum Sortieren von Arraywerten nutzen kann.

Beispiel 1: Sortieren in aufsteigender Reihenfolge

Um ein Array in aufsteigender Reihenfolge mithilfe der Methode [Array]::Sort() zu sortieren, können wir die Methode aufrufen und das Array als Argument übergeben:

$numbers = 4, 2, 7, 1, 5
[Array]::Sort($numbers)
$numbers

In diesem Beispiel enthält das Array $numbers numerische Werte. Wir verwenden die Methode [Array]::Sort(), um das Array in aufsteigender Reihenfolge direkt zu sortieren. Die Sortierung erfolgt in place, was bedeutet, dass das ursprüngliche Array geändert wird.

Ausgabe:

1
2
4
5
7

Beispiel 2: Sortieren von Strings in aufsteigender Reihenfolge

$fruits = "Apple", "Orange", "Banana", "Grapes"
[Array]::Sort($fruits)
$fruits

Hier enthält das Array $fruits Stringwerte, die Früchte darstellen. Die Methode [Array]::Sort() wird angewendet, um das Array alphabetisch in aufsteigender Reihenfolge zu sortieren. Das ursprüngliche Array wird in place geändert.

Ausgabe:

Apple
Banana
Grapes
Orange

Beispiel 3: Sortieren in absteigender Reihenfolge

$ages = 35, 22, 28, 40, 30
[Array]::Sort($ages)
$ages = $ages -join ", "
$ages

In diesem Beispiel besteht das Array $ages aus numerischen Werten. Wir wenden [Array]::Sort() an, um das Array in aufsteigender Reihenfolge zu sortieren, und verwenden dann -join, um die sortierten Werte in einen String zu verketten, um die Lesbarkeit zu verbessern.

Ausgabe:

22, 28, 30, 35, 40

Die Methode [Array]::Sort() ist ein praktischer Weg, um Arrays in place zu sortieren. Sie ist besonders nützlich, wenn Sie das ursprüngliche Array direkt ändern möchten.

Es ist jedoch wichtig zu beachten, dass diese Methode nicht zum Sortieren von Arrays komplexer Objekte oder benutzerdefinierter Typen geeignet ist, bei denen Sort-Object die geeignetere Wahl wäre.

Fazit

In diesem Artikel haben wir zwei grundlegende Methoden aufgedeckt: das vielseitige Cmdlet Sort-Object und die unkomplizierte Methode [Array]::Sort(). Jede Methode bietet ihre eigenen einzigartigen Vorteile und ist auf unterschiedliche Szenarien und Vorlieben im PowerShell-Skripting zugeschnitten.

Das Cmdlet Sort-Object sticht hervor, wenn es um Arrays von benutzerdefinierten Objekten oder unterschiedlichen Datentypen geht, mit seiner flexiblen Syntax und der Fähigkeit, Objekte basierend auf Eigenschaften zu sortieren. Seine nahtlose Integration in Pipelines macht es zu einem leistungsstarken Werkzeug zur Array-Manipulation, das sowohl aufsteigende als auch absteigende Sortiermöglichkeiten bietet.

Andererseits glänzt die Methode [Array]::Sort() in Einfachheit und Effizienz, da sie das ursprüngliche Array direkt in place ändert. Sie ist ideal für Szenarien, in denen Sie die vorhandene Array ohne die Erstellung zusätzlicher Variablen ändern möchten.

Dennoch ist es entscheidend, ihre Eignung hauptsächlich für das Sortieren einfacher Arrays von primitiven Datentypen zu erkennen.

Letztendlich hängt es davon ab, ob Sie das Cmdlet Sort-Object oder die Methode [Array]::Sort() wählen, von den spezifischen Anforderungen Ihres PowerShell-Skripts ab.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Verwandter Artikel - PowerShell Array