Разница между Get-Unique и select-object -unique

Используя PowerShell, я импортирую csv-данные из файла через «import-csv» в объект $csvList. В этих CSV-данных есть столбец Benutzer. Когда вы делаете что-то вроде этого:

$csvList | %{$_.Benutzer} | select-object -unique

в этом нет ничего особенного: как и ожидалось, возвращаются уникальные записи в Benutzer, которых около 10 штук. Однако,

$csvList | %{$_.Benutzer} | get-unique -asstring

or

$csvList | Group($_.Benutzer)

кажется, что каждая запись рассматривается как unqiue, т. е. весь массив из 260 Benutzer возвращается в случае get-unique и 260 групп создаются в случае оператора группы. Я использую PowerShell 4.0.

Любая идея о том, что здесь происходит, приветствуется...


person StefG    schedule 13.10.2014    source источник


Ответы (1)


Из Get-Unique справки:

Командлет Get-Unique сравнивает каждый элемент в отсортированном списке...

Select-Object -Unique не требует предварительной сортировки объектов.

Пример:

PS> 9,8,9,8 | Get-Unique -AsString
9
8
9
8

Пример:

PS> 9,8,9,8 | Sort-Object -Unique
8
9

Что касается Group-Object, то синтаксис команды должен быть другим, замените ($_.Benutzer) на имя свойства Benutzer:

$csvList | Group-Object Benutzer
person Roman Kuzmin    schedule 13.10.2014