Возвращает уникальные элементы из отсортированного списка.
Синтаксис
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 как объекты и возвратил бы только один экземпляр объекта, то есть первое имя процесса в списке.