Leer en inglés

Compartir a través de


Get-Unique

Devuelve elementos únicos de una lista ordenada.

Sintaxis

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

Description

El cmdlet Get-Unique compara cada elemento de una lista ordenada con el elemento siguiente, elimina los duplicados y devuelve solo una instancia de cada elemento. La lista debe ordenarse 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 mayúsculas y minúsculas de caracteres se consideran únicas.

Ejemplos

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

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

PowerShell
$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 archivo File.txt. 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 cmdlet Get-Unique para eliminar las palabras duplicadas. Los resultados se almacenan en la variable $A.

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 busca los miembros únicos del conjunto de enteros.

PowerShell
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 Sort-Object que se va a 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 cmdlet Get-ChildItem para recuperar el contenido del directorio local, que incluye archivos y directorios.

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

El operador de canalización (|) envía los resultados al cmdlet Sort-Object. La instrucción $_.GetType() 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.

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

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

El parámetro AsString indica Get-Unique que trate los valores de ProcessName como cadenas. Sin este parámetro, Get-Unique trata los valores de 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.

PowerShell
"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.

PowerShell
"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). Puede usar este parámetro para buscar los valores únicos de las propiedades del objeto, como los nombres de archivo.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-InputObject

Especifica la entrada para Get-Unique. Escriba una variable que contenga los objetos o escriba un comando o 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.

Tipo:PSObject
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-OnType

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

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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 obtener 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.