Get-Unique

Devuelve los elementos únicos de una lista ordenada.

Syntax

Get-Unique
   [-InputObject <PSObject>]
   [-AsString]
   [-CaseInsensitive]
   [<CommonParameters>]
Get-Unique
   [-InputObject <PSObject>]
   [-OnType]
   [-CaseInsensitive]
   [<CommonParameters>]

Description

El Get-Unique cmdlet compara cada elemento de una lista ordenada con el siguiente elemento, elimina duplicados y devuelve solo una instancia de cada elemento. La lista debe estar ordenada para que el cmdlet funcione correctamente.

De forma predeterminada, Get-Unique distingue mayúsculas de minúsculas. Como resultado, las cadenas que solo difieren en las mayúsculas y minúsculas se consideran únicas.

Ejemplos

Ejemplo 1: Obtener palabras únicas en un archivo de texto

Estos comandos hallan el número de palabras únicas en un archivo de texto.

$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
    $line.tolower().split(" ")
  }) | Sort-Object | Get-Unique
$A.count

El primer comando obtiene el contenido del File.txt archivo. Convierte cada línea de texto en letras minúsculas y, a continuación, divide cada palabra en una línea independiente en el espacio (" "). A continuación, ordena la lista resultante alfabéticamente (el valor predeterminado) y usa el Get-Unique cmdlet para eliminar las palabras duplicadas. Los resultados se almacenan en la $A variable .

El segundo comando usa la propiedad Count de la colección de cadenas de $A para determinar cuántos elementos hay en $A.

Ejemplo 2: Obtener enteros únicos en una matriz

Este comando halla los miembros únicos del conjunto de enteros.

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

El primer comando toma una matriz de enteros tipados en la línea de comandos, los canaliza al cmdlet que se va a Sort-Object ordenar y, a continuación, los canaliza a Get-Unique, lo que elimina entradas duplicadas.

Ejemplo 3: Obtención de tipos de objetos únicos en un directorio

Este comando usa el Get-ChildItem cmdlet para recuperar el contenido del directorio local, que incluye archivos y directorios.

Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType

El operador de canalización (|) envía los resultados al Sort-Object cmdlet . La $_.GetType() instrucción aplica el método GetType a cada archivo o directorio. A continuación, Sort-Object ordena los elementos por tipo. Otro operador de canalización envía los resultados a Get-Unique. El parámetro OnType dirige Get-Unique para devolver solo un objeto de cada tipo.

Ejemplo 4: Obtención de procesos únicos

Este comando obtiene los nombres de los procesos que se ejecutan en el equipo con duplicados eliminados.

Get-Process | Sort-Object | Select-Object processname | Get-Unique -AsString

El Get-Process comando obtiene todos los procesos del equipo. El operador de canalización (|) pasa el resultado a Sort-Object, que, de forma predeterminada, ordena los procesos alfabéticamente por ProcessName. Los resultados se canalizan al Select-Object cmdlet , que selecciona solo los valores de la propiedad ProcessName de cada objeto. A continuación, los resultados se canalizan para Get-Unique eliminar duplicados.

El parámetro AsString indica Get-Unique que trate los valores processName como cadenas. Sin este parámetro, Get-Unique trata los valores ProcessName como objetos y devuelve solo una instancia del objeto, es decir, el nombre del primer proceso de la lista.

Ejemplo 5: Usar comparaciones que distinguen mayúsculas de minúsculas para obtener cadenas únicas

En este ejemplo se usan comparaciones que no distinguen mayúsculas de minúsculas para obtener cadenas únicas de una matriz de cadenas.

"aa", "Aa", "Bb", "bb", "aa" | Sort-Object -CaseSensitive | Get-Unique

aa
Aa
bb
Bb

Ejemplo 6: Usar comparaciones que no distinguen mayúsculas de minúsculas para obtener cadenas únicas

En este ejemplo se usan comparaciones que no distinguen mayúsculas de minúsculas para obtener cadenas únicas de una matriz de cadenas.

"aa", "Aa", "Bb", "bb", "aa" | Sort-Object | Get-Unique -CaseInsensitive

aa
Bb

Parámetros

-AsString

Indica que este cmdlet usa los datos como una cadena. Sin este parámetro, los datos se tratan como un objeto, por lo que cuando se envía una colección de objetos del mismo tipo a Get-Unique, como una colección de archivos, devuelve solo una (la primera). Este parámetro se puede usar para buscar los valores únicos de las propiedades de objeto, como los nombres de archivo.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CaseInsensitive

De forma predeterminada, Get-Unique distingue mayúsculas de minúsculas. Cuando se usa este parámetro, el cmdlet usa comparaciones que no distinguen mayúsculas de minúsculas.

Este parámetro se agregó en PowerShell 7.4.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Especifica la entrada para Get-Unique. Especifique una variable que contenga los objetos, o escriba un comando o una expresión que obtenga los objetos.

Este cmdlet trata la entrada enviada mediante InputObject como una colección. No enumera elementos individuales de la colección. Dado que la colección es un solo elemento, la entrada enviada mediante InputObject siempre se devuelve sin cambios.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OnType

Indica que este cmdlet devuelve solo un objeto de cada tipo.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

PSObject

Puede canalizar cualquier tipo de objeto a este cmdlet.

Salidas

PSObject

Este cmdlet devuelve sus objetos de entrada sin duplicados.

Notas

PowerShell incluye los siguientes alias para Get-Unique:

  • Todas las plataformas:
    • gu

Para más información, vea about_Aliases.

Para ordenar una lista, use Sort-Object. También puede usar el parámetro Unique de Sort-Object para buscar los elementos únicos de una lista.