PowerShellコマンドレット虎の巻

Sort-Object

Sort-Objectは、オブジェクトをソートするコマンドです。

エイリアスsort

解説

オブジェクトのコレクションを指定されたプロパティに基づいて並べ替えます。

構文

(構文)
Sort-Object [[-Property] <Object[]>] [<CommonParameters>]
【主要パラメータ】
パラメータ説明
-Descendingオブジェクトを降順にする
※デフォルトは昇順
(例)Sort-Object -Property Age -Descending
-Unique重複するオブジェクトを除外し一意のオブジェクトのみを返す
(例)Sort-Object -Property Name -Unique
-InputObject オブジェクトパイプライン入力を使用せずに、オブジェクトのコレクションを直接指定する
(例)Sort-Object -InputObject $array -Property Name
-Property プロパティ並べ替えに使用するプロパティ名を指定する
※複数のプロパティをコンマで区切って指定可
(例)Sort-Object -Property Name, Age
-Culture カルチャ並べ替えに使用するカルチャを指定する
※デフォルトは現在のカルチャ
(例)Sort-Object -Property Name -Culture "en-US"
-CaseSensitive大文字と小文字を区別して並べ替える
(例)Sort-Object -Property Name -CaseSensitive

共通的なパラメータは「共通パラメータ」をご覧ください。

サンプル

配列を並び替える

$array = 5, 3, 1, 4, 2 $sortedArray = $array | Sort-Object Write-Output $sortedArray

(実行結果)

1 2 3 4 5

降順に並び替える

$sortedArray = $array | Sort-Object -Descending

オブジェクトのプロパティで並び替える

$objects = @( [PSCustomObject]@{ Name = "Apple"; Price = 250 }, [PSCustomObject]@{ Name = "Orange"; Price = 80 }, [PSCustomObject]@{ Name = "Peach"; Price = 400 } ) $sortedObjects = $objects | Sort-Object -Property Price $sortedObjects | Format-Table -AutoSize

(実行結果)

Name Price ---- ----- Orange 80 Apple 250 Peach 400

オブジェクトの複数のプロパティで並び替えする

$sortedObjects = $objects | Sort-Object -Property Price, Name

数値としてソートする

Get-Process | Sort-Object {[int]$_.CPU}

コマンドのヘルプを表示する

Get-Help Sort-Object

備考

  • デフォルトではNull値は他の値よりも小さいものとして扱われます。
  • デフォルトではソートは大文字小文字を区別しません。
    大文字小文字を区別したい場合は-CaseSensitiveパラメータを指定してください。

関連項目