PowerShell: 配列の要素をソートする Sort-Object
PowerShellで配列の要素をソートする場合は、 Sort-Objectコマンドレットを使用します。
ソートしたい配列をパイプでSort-Objectに渡して、 結果を受け取るだけです。デフォルトでは昇順でソート、 パラメータを指定すると降順もできます。 ここでは、数値・英字・日本語のひらがな・カタカタのソートを 順番に見ていきます。
まずは数値が入った配列のソートを実行してみます。
$arr = 3, 4, 2, 5, 1 $arr = $arr | Sort-Object Write-Host $arr # 1 2 3 4 5
降順の場合はスイッチパラメータの「-Descending」を指定します。
$arr = 3, 4, 2, 5, 1 $arr = $arr | Sort-Object -Descending Write-Host $arr # 5 4 3 2 1
次は英字のソートです。
$arr = "d", "b", "e", "a", "c" $arr = $arr | Sort-Object Write-Host $arr # a b c d e
英字の場合、 デフォルトでは大文字小文字が区別されていません。 区別する場合はスイッチパラメータの「-CaseSensitive」を指定します。 と仕様上はなっているのですが、 下のように試したところ上手くいきませんでした。バグ?
$arr = "d", "b", "E", "A", "c" $arr = $arr | Sort-Object -CaseSensitive Write-Host $arr # A b c d E (区別されていない)
次は日本語のひらがなをソートします。
言語を指定するための「-Culture」パラメータがありますが、 日本語環境では"ja-JP"が指定されているので、 特に言語を指定することなくソートできます。
$arr = "う", "お", "い", "え", "あ" $arr = $arr | Sort-Object Write-Host $arr # あ い う え お
カタカナも同様にソートできます。
$arr = "エ", "オ", "ア", "イ", "ウ" $arr = $arr | Sort-Object Write-Host $arr # ア イ ウ エ オ
このようにPowerShellでの配列要素のソートは、 Sort-Objectコマンドレットを使うと 簡単に実現できます。
(まとめ記事: PowerShell 配列)