從 PowerShell 陣列中刪除重複值
-
使用
Select-Object
從 PowerShell 陣列中刪除重複值 -
使用
Sort-Object
從 PowerShell 陣列中刪除重複值 -
使用
Get-Unique
從 PowerShell 陣列中刪除重複項
陣列是一種資料結構,用於儲存多個專案的集合,專案可以是相同型別,也可以是不同型別。有時在 PowerShell 中使用陣列時,你可能需要從陣列中刪除重複項。
本教程將介紹從 PowerShell 陣列中刪除重複項的不同方法。
使用 Select-Object
從 PowerShell 陣列中刪除重複值
Select-Object
cmdlet 用於選擇一個物件或一組物件的指定屬性。你還可以選擇陣列中指定位置的唯一物件。
-Unique
引數指定如果物件中有相同的屬性和值,則只選擇一個成員。它區分大小寫,因此僅字元大小寫不同的字串也被視為唯一值。
我們建立了一個陣列 $data
,其中包含多個具有不同案例的相同專案。
$data = @("powershell", "arrays", "powershell", "Arrays", "PowerShell")
以下示例從陣列中選擇唯一值並將它們儲存到 $data
變數。結果,將從陣列中刪除重複的元素。
命令:
$data = $data| Select-Object -Unique
$data
輸出:
powershell
arrays
Arrays
PowerShell
它會刪除重複的字串"powershell"
,但不會刪除"PowerShell"
,因為字串中有一個大寫字母。
使用 Sort-Object
從 PowerShell 陣列中刪除重複值
Sort-Object
cmdlet 根據物件的屬性值按升序或降序對物件進行排序。也使用 Sort-Object
,你可以使用 -Unique
引數從物件中刪除重複項。
但它不區分大小寫,因此僅字元大小寫不同的字串也被認為是相同的。以下示例從陣列中刪除重複項並將它們儲存到變數 $a
。
命令:
$a = @("powershell", "arrays", "powershell", "Arrays", "PowerShell")
$a = $a | Sort-Object -Unique
$a
輸出:
Arrays
PowerShell
它刪除了"Arrays"
和 "PowerShell"
,儘管它們僅在字元大小寫上有所不同。如果要使 Sort-Object
區分大小寫,可以使用 -CaseSensitive
引數。
命令:
$b = @("powershell", "arrays", "powershell", "Arrays", "PowerShell")
$b = $b| Sort-Object -Unique -CaseSensitive
$b
輸出:
arrays
Arrays
powershell
PowerShell
使用 Get-Unique
從 PowerShell 陣列中刪除重複項
Get-Unique
cmdlet 從排序列表中獲取唯一項。它將排序列表中的每個專案與下一個專案進行比較,刪除重複項,並僅返回每個專案的一個成員。
此 cmdlet 僅在列表已排序時才有效。你可以使用 Sort-Object
cmdlet 按屬性值對物件進行排序。
下面的示例使用 Get-Unique
cmdlet 在使用 Sort-Object
對陣列元素進行排序後從陣列 $sort
中刪除重複項。
命令:
$c = @("powershell", "arrays", "powershell", "Arrays", "PowerShell")
$c = $c | Sort-Object | Get-Unique
$c
輸出:
Arrays
arrays
PowerShell
powershell
Get-Unique
區分大小寫,因此僅字元大小寫不同的字串也被視為唯一值。通過這種方式,你可以輕鬆地從 PowerShell 中的陣列中刪除重複元素。