Возвращает уникальные элементы из отсортированного списка.

Синтаксис

Get-Unique [-AsString] [-InputObject <psobject>] [<CommonParameters>]

Get-Unique [-OnType] [-InputObject <psobject>] [<CommonParameters>]

Описание

Командлет Get-Unique сравнивает каждый элемент отсортированного списка со следующим, исключает дубликаты и возвращает только по одному экземпляру каждого элемента. Для правильной работы этого командлета список должен быть отсортирован.

Параметры

-AsString

Указывает, что данные должны быть обработаны как строка. Если этот параметр не указан, данные обрабатываются как объект, поэтому при передаче командлету Get-Unique коллекции объектов одного типа (например коллекции файлов) он возвращает только один объект (первый). Этот параметр можно использовать для нахождения уникальных значений свойств объектов, например имен файлов.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-InputObject <psobject>

Принимает входные значения для командлета Get-Unique. Введите переменную, содержащую объекты, либо получающую их команду или выражение.

Командлет Get-Unique рассматривает ввод, переданный с использованием параметра InputObject, как коллекцию; он не работает с отдельными элементами коллекции. Так как коллекция является одним элементом, ввод, переданный с помощью параметра InputObject, всегда возвращается в неизменном виде.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue)

Принимать подстановочные знаки?

false

-OnType

Возвращает только один объект каждого типа.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

System.Management.Automation.PSObject

Любой объект любого типа можно передать командлету Get-Unique по конвейеру.

Выходные данные

System.Management.Automation.PSObject

Тип объекта, возвращаемого командлетом Get-Unique, определяется входными данными.

Примечания

Командлет Get-Unique также можно вызывать с помощью встроенного псевдонима "gu". Дополнительные сведения см. в разделе about_Aliases.

Для сортировки списка используйте командлет Sort-Object. Кроме того, для нахождения уникальных элементов списка можно использовать параметр Unique командлета Sort-Object.

Пример 1

C:\PS>$a = $(foreach ($line in get-content C:\Test1\File1.txt) {$line.tolower().split(" ")}) | sort | get-unique

C:\PS> $a.count

Описание
-----------
Эти команды определяют число уникальных слов в текстовом файле. 

Первая команда возвращает содержимое файла File.txt. Она преобразует каждую строку текста в нижний регистр, после чего разбивает текст на слова по знаку пробела (" ") и помещает их в отдельные строки. Затем она сортирует получившийся список в алфавитном порядке (порядок сортировки по умолчанию) и устраняет все повторяющиеся слова с помощью командлета Get-Unique. Результат сохраняется в переменной $a.

Во второй команде с помощью свойства Count набора строк, сохраненных в переменной $a, определяется число элементов в $a.






Пример 2

C:\PS>1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | sort-object | Get-Unique

Описание
-----------
Эта команда возвращает уникальные элементы набора целых чисел. Первая команда принимает массив целых чисел, введенных в командной строке, и передает его по конвейеру командлету Sort-Object для сортировки. Отсортированный массив передается по конвейеру командлету Get-Unique, который устраняет повторяющиеся элементы.






Пример 3

C:\PS>get-childitem | sort-object {$_.GetType()} |  unique -OnType

Описание
-----------
Эта команда с помощью командлета Get-ChildItem извлекает содержимое локального каталога, включающего файлы и каталоги. Оператор конвейера (|) передает результаты командлету Sort-Object. Выражение "$_.GetType()" указывает, что метод GetType выполняется для каждого файла или каталога. Затем командлет Sort-Object сортирует элементы по типу. Другой оператор конвейера передает результаты командлету Get-Unique. Параметр OnType указывает, что командлет Get-Unique должен вернуть только по одному объекту каждого типа.






Пример 4

C:\PS>get-process | sort-object | select processname | get-unique -asstring

Описание
-----------
Эта команда возвращает имена выполняемых на компьютере процессов, устранив перед этим дубликаты. 

Команда Get-Process возвращает все процессы на компьютере. Оператор конвейера (|) передает результат командлету Sort-Object, который по умолчанию сортирует процессы по значению свойства ProcessName в алфавитном порядке. Результат передается по конвейеру командлету Select-Object, который выбирает только значения свойства ProcessName каждого объекта. Затем эти значения передаются по конвейеру командлету Get-Unique для устранения повторяющихся значений. 

Параметр AsString указывает командлету Get-Unique, что значения ProcessName должны обрабатываться как строки. Без этого параметра командлет Get-Unique обработал бы значения ProcessName как объекты и возвратил бы только один экземпляр объекта, то есть первое имя процесса в списке.






См. также




Содержание