Get-Unique
Devuelve elementos únicos de una lista ordenada.
Get-Unique
[-InputObject <PSObject>]
[-AsString]
[-CaseInsensitive]
[<CommonParameters>]
Get-Unique
[-InputObject <PSObject>]
[-OnType]
[-CaseInsensitive]
[<CommonParameters>]
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.
Estos comandos encuentran 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 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
.
Este comando busca 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 Sort-Object
que se va a ordenar y, a continuación, los canaliza a Get-Unique
, lo que elimina entradas duplicadas.
Este comando usa el cmdlet Get-ChildItem
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 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.
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 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.
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
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 |
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 |
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 |
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 |
Puede canalizar cualquier tipo de objeto a este cmdlet.
Este cmdlet devuelve sus objetos de entrada sin duplicados.
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.
Comentarios de PowerShell
PowerShell es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: