Get-Unique
Devuelve los elementos únicos de una lista ordenada.
Sintaxis
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.
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
. 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.
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
Puede canalizar cualquier tipo de objeto a este cmdlet.
Salidas
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.