从 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 中的数组中删除重复元素。