PowerShell: 配列から重複を削除
PowerShellで配列内にある重複した値を削除する方法を2つ紹介します。
どちらもPowerShellのコマンドレットを使って簡単に重複削除できます。
PowerShellを使って配列内の重複を削除することで、
データ処理や分析が効率的に行えます。本記事では、その具体的な方法を紹介します。
Select-Objectによる重複削除
Select-Objectに「-Unique」を指定すると配列の重複削除が簡単にできます。
次のコードでは重複した値を持つ配列から、 Select-Objectを使って重複削除を行っています。
$arr = "c", "b", "c", "c", "a", "b" $arr = $arr | Select-Object -Unique Write-Host $arr # c b a
Select-Objectのエイリアス(別名)はselectなので次のように記述しても 同じ結果を得られます。
$arr = "c", "b", "c", "c", "a", "b" $arr = $arr | select -Unique Write-Host $arr # c b a
Get-Uniqueによる重複削除
Get-Uniqueはオブジェクトから重複を取り除くためのコマンドで、 配列の重複削除にも使用できます。 ただしあらかじめデータをソートしておく必要があるので、 先にSort-Objectでソートした結果をGet-Uniqueに渡します。
$arr = "c", "b", "c", "c", "a", "b" $arr = $arr | Sort-Object | Get-Unique Write-Host $arr # c b a
Sort-Objectのエイリアスは「sort」、 Get-Uniqueのエイリアスは「gu」です。
Group-Objectによる重複確認
配列に重複したデータがあるかどうかを確認したい場合、 Group-Objectを使用すると、 「値」と「出現回数」を表示してくれます。
$arr = "c", "b", "c", "c", "a", "b" $arr | Group-Object -NoElement # 実行結果 Count Name ----- ---- 1 a 2 b 3 c
(まとめ記事: PowerShell 配列)