Почему я получаю этот вывод в PowerShell вроде - уникальный счет - PullRequest
4 голосов
/ 18 февраля 2012

Я набрал следующую команду, чтобы узнать, сколько было уникальных объектов, и она дала мне 5. Я не знаю, почему это дает 5.

> $var = @(2,4,2,5,3,6,34,6,3,6,4,6,3,5,5,353,5343,5,3,56,34)  
>$var | sort -Unique  
2  
3  
4  
5  
6  
34  
56  
353  
5343  
>$var | sort -Unique Count  
5

Ответы [ 2 ]

7 голосов
/ 18 февраля 2012

$var | sort -Unique COUNT - это то же самое, что и: $var | sort -Unique -Property COUNT

Итак, что делает сортировка, ищет свойство «COUNT» для каждого из элементов в массиве, чтобы определить, являются ли они уникальными или нет.Вы можете увидеть, как это работает, если вы сделаете следующее:

GPS sv* | sort -Unique ID
GPS sv* | sort -Unique Name

Поскольку ни один из объектов не имеет свойства "COUNT", сортировка видит их все как одинаковые, и, следовательно, ни один из них не является уникальным и возвращает одинэлементов.Ключ к разгадке был в следующем:

$var = $("a", "b", "c", "b")
$var | sort -Unique count

это дало результат "c".

Мера - это ваш друг здесь:

$var |sort -Unique |measure

Это должно сделатьобмануть.

3 голосов
/ 18 февраля 2012

Я тоже не уверен, почему он это делает, но -sort не имеет параметра count.

Я думаю, что вы могли бы после:

$var = @(2,4,2,5,3,6,34,6,3,6,4,6,3,5,5,353,5343,5,3,56,34)  
($var | sort -Unique).count  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...