從 PowerShell 陣列中刪除重複值

Rohan Timalsina 2023年1月30日
  1. 使用 Select-Object 從 PowerShell 陣列中刪除重複值
  2. 使用 Sort-Object 從 PowerShell 陣列中刪除重複值
  3. 使用 Get-Unique 從 PowerShell 陣列中刪除重複項
從 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 中的陣列中刪除重複元素。

作者: Rohan Timalsina
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

相關文章 - PowerShell Array