这是我的清单:
Apple
Apple
Apple
Pear
Orange
Pear
Apple
Apple
Apple
Apple
Apple
Pear
Kiwi
Kiwi
Kiwi
所以我的最终列表只显示每个水果的一次出现
Apple
Orange
Pear
Kiwi
如果只有4个元素,那么一个简单的函数就可以了。但是我的列表中有十几个元素会定期更改硬编码列表是不可能的。是否有内置函数(cmdlet)或任何其他方法,我只能在列表中显示每个元素的单个匹配项。所以它会消除任何重复。
由于
答案 0 :(得分:2)
您可以使用排序列表中的Get-Unique
cmdlet或-Unique
或Select-Object
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版本。