显示单个事件

时间:2017-09-08 19:50:50

标签: powershell

这是我的清单:

Apple
Apple
Apple
Pear
Orange
Pear
Apple
Apple
Apple
Apple
Apple
Pear
Kiwi
Kiwi
Kiwi

所以我的最终列表只显示每个水果的一次出现

Apple
Orange
Pear
Kiwi

如果只有4个元素,那么一个简单的函数就可以了。但是我的列表中有十几个元素会定期更改硬编码列表是不可能的。是否有内置函数(cmdlet)或任何其他方法,我只能在列表中显示每个元素的单个匹配项。所以它会消除任何重复。

由于

2 个答案:

答案 0 :(得分:2)

您可以使用排序列表中的Get-Unique cmdlet或-UniqueSelect-Object

等cmdlet上的Sort-Object参数

包含Get-Unique的预先排序列表:

$list = @('Apple', 'Apple', 'Apple', 'Apple', 'Apple', 'Apple', 'Apple', 'Apple', 'Kiwi', 'Kiwi', 'Kiwi', 'Orange', 'Pear', 'Pear', 'Pear')
$list | Get-Unique

Apple 
Kiwi  
Orange
Pear  

使用Sort-Object -Unique

$list = @('Apple', 'Apple', 'Apple', 'Pear', 'Orange', 'Pear', 'Apple', 'Apple', 'Apple', 'Apple', 'Apple', 'Pear', 'Kiwi', 'Kiwi', 'Kiwi') 
$list | Sort-Object -Unique

Apple
Kiwi
Orange
Pear

或者,您可以使用Group-Object并获取每个组的Name属性。请注意,此方法不需要排序,因此将按照首次遇到元素的顺序保留列表。

$list = @('Apple', 'Apple', 'Apple', 'Pear', 'Orange', 'Pear', 'Apple', 'Apple', 'Apple', 'Apple', 'Apple', 'Pear', 'Kiwi', 'Kiwi', 'Kiwi') 
($list | Group-Object).name

Apple
Pear
Orange
Kiwi

答案 1 :(得分:0)

你需要它们以相同的顺序吗?

您可以使用* nix命令实用程序执行此操作:

type mylist.txt | sort | uniq

我不知道他们是否已经是Linux子系统的一部分。但我知道你可以在网上找到Windows版本。