从 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