从PowerShellarrays中删除重复的值
我如何从PowerShell数组中删除重复项?
$a = @(1,2,3,4,5,5,6,7,8,9,0,0)
使用Select -uniq
例如:
$a = @(1,2,3,4,5,5,6,7,8,9,0,0) $a = $a | select -uniq
另外一个select:
$a | sort -unique
$a | sort -unique
这适用于不区分大小写,因此删除具有不同情况的重复string。 解决了我的问题。
$ServerList = @( "FS3", "HQ2", "hq2" ) | sort -Unique $ServerList FS3 HQ2
如果列表已sorting,则可以使用Get-Unique cmdlet:
$a | Get-Unique
如果你想充分的炸弹certificate,这是我会build议:
@('Apples', 'Apples ', 'APPLES', 'Banana') | Sort-Object -Property @{Expression={$_.Trim()}} -Unique
输出:
Apples Banana
这使用Property
参数来首先Trim()
string,所以多余的空格被删除,然后只select-Unique
值。
有关Sort-Object
更多信息:
Get-Help Sort-Object -ShowWindow
无论您是从Powershell 2.0到5.1使用“SORT -UNIQUE”,“SELECT -UNIQUE”还是“GET-UNIQUE”,所有示例都在单列数组上。 我还没有得到这个在具有多个列的数组上运行来移除重复行以跨所述列留下一行的单个事件,或者开发替代的脚本解决scheme。 相反,这些cmdlet只返回一个数组中发生的单行事件,并抛出所有重复的行。 通常,我必须从Excel的最终CSV输出中手动删除重复项以完成报告,但有时候我想在删除重复项之后继续使用Powershell中的所述数据。