Get-Unique
Возвращает уникальные элементы из сортированного списка.
Синтаксис
Get-Unique
[-InputObject <PSObject>]
[-AsString]
[<CommonParameters>]
Get-Unique
[-InputObject <PSObject>]
[-OnType]
[<CommonParameters>]
Описание
Командлет Get-Unique
сравнивает каждый элемент в отсортированных списках со следующим элементом, устраняет дубликаты и возвращает только один экземпляр каждого элемента. Чтобы командлет работал правильно, список должен быть отсортирован.
Get-Unique
учитывает регистр. Поэтому строки, которые отличаются только регистром символов, считаются уникальными.
Примеры
Пример 1. Получение уникальных слов в текстовом файле
Эти команды определяют число уникальных слов в текстовом файле.
$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
$line.tolower().split(" ")
}) | Sort-Object | Get-Unique
$A.count
Первая команда возвращает содержимое файла File.txt. Она преобразует каждую строку текста в строчные буквы, а затем выделяет каждое слово, отделенное пробелом (" "), в отдельную строку. Затем он сортирует результирующий список в алфавитном порядке (по умолчанию) и использует Get-Unique
командлет для устранения повторяющихся слов. Результаты хранятся в переменной $A
.
Вторая команда использует свойство Count коллекции строк для $A
определения количества элементов.$A
Пример 2. Получение уникальных целых чисел в массиве
Эта команда находит уникальные члены во множестве целых чисел.
1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | Sort-Object | Get-Unique
1
3
4
5
12
23
4643
Первая команда принимает массив целых чисел, введенных в командной строке, передает их Sort-Object
командлету для сортировки, а затем передает их Get-Unique
в , что устраняет повторяющиеся записи.
Пример 3. Получение уникальных типов объектов в каталоге
Эта команда использует Get-ChildItem
командлет для получения содержимого локального каталога, включающего файлы и каталоги.
Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType
Оператор конвейера (|) отправляет результаты командлету Sort-Object
. Инструкция $_.GetType()
применяет метод GetType к каждому файлу или каталогу. Sort-Object
Затем сортирует элементы по типу. Другой оператор конвейера отправляет результаты в Get-Unique
. Параметр OnType указывает Get-Unique
на возвращение только одного объекта каждого типа.
Пример 4. Получение уникальных процессов
Эта команда возвращает имена запущенных на компьютере процессов без повторяющихся имен.
Get-Process | Sort-Object | Select-Object processname | Get-Unique -AsString
Команда Get-Process
получает все процессы на компьютере. Оператор конвейера (|) передает результат Sort-Object
, в который по умолчанию сортирует процессы в алфавитном порядке по processName. Результаты передаются Select-Object
в командлет, который выбирает только значения свойства ProcessName каждого объекта. Затем результаты передаются в конвейер, чтобы исключить Get-Unique
дубликаты.
Параметр AsString указывает Get-Unique
, что значения ProcessName обрабатываются как строки.
Без этого параметра Get-Unique
значения ProcessName обрабатываются как объекты и возвращаются только один экземпляр объекта, то есть имя первого процесса в списке.
Параметры
-AsString
Указывает, что этот командлет использует данные в качестве строки. Без этого параметра данные обрабатываются как объект, поэтому при отправке коллекции объектов того же типа Get-Unique
, например в коллекцию файлов, она возвращает только одну (первую). С помощью этого параметра можно находить уникальные значения свойств объектов, например имена файлов.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Указывает входные данные для Get-Unique
. Введите переменную, которая содержит объекты, или команду или выражение, которое возвращает объекты.
Этот командлет обрабатывает входные данные, отправленные с помощью InputObject , как коллекцию. Он не перечисляет отдельные элементы в коллекции. Так как коллекция является одним элементом, входные данные, отправленные с помощью InputObject , всегда возвращаются без изменений.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-OnType
Указывает, что этот командлет возвращает только один объект каждого типа.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Вы можете передать любой тип объекта в Get-Unique
.
Выходные данные
Тип возвращаемого Get-Unique
объекта определяется входными данными.
Примечания
Вы также можете ссылаться на Get-Unique
его встроенный псевдоним. gu
Дополнительные сведения см. в разделе about_Aliases.
Чтобы отсортировать список, используйте командлет Sort-Object. Вы также можете использовать уникальный параметр Sort-Object
для поиска уникальных элементов в списке.