Get-Unique
Retorna itens únicos por meio de uma lista classificada.
Sintaxe
Get-Unique
[-InputObject <PSObject>]
[-AsString]
[-CaseInsensitive]
[<CommonParameters>]
Get-Unique
[-InputObject <PSObject>]
[-OnType]
[-CaseInsensitive]
[<CommonParameters>]
Description
O Get-Unique
cmdlet compara cada item em uma lista classificada com o próximo item, elimina duplicatas e retorna apenas uma instância de cada item. A lista deve ser classificada para que o cmdlet funcione corretamente.
Por padrão, Get-Unique
diferencia maiúsculas de minúsculas. Como resultado, cadeias de caracteres que diferem apenas em maiúsculas e minúsculas são consideradas como sendo exclusivas.
Exemplos
Exemplo 1: Obter palavras exclusivas em um arquivo de texto
Estes comandos localizam o número de palavras exclusivas em um arquivo de texto.
$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
$line.tolower().split(" ")
}) | Sort-Object | Get-Unique
$A.count
O primeiro comando obtém o conteúdo do File.txt
arquivo. Ele converte cada linha de texto em letras minúsculas e, em seguida, divide cada palavra em uma linha separada no espaço (" "
). Em seguida, ele classifica a lista resultante em ordem alfabética (o padrão) e usa o Get-Unique
cmdlet para eliminar quaisquer palavras duplicadas. Os resultados são armazenados na $A
variável.
O segundo comando usa a propriedade Count da coleção de cadeias de caracteres para $A
determinar quantos itens estão no $A
.
Exemplo 2: Obter inteiros exclusivos em uma matriz
Este comando localiza os membros exclusivos do conjunto de números inteiros.
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
O primeiro comando usa uma matriz de inteiros digitados na linha de comando, canaliza-os para o Sort-Object
cmdlet a ser classificado e, em seguida, canaliza-os para Get-Unique
, o que elimina entradas duplicadas.
Exemplo 3: Obter tipos de objetos exclusivos em um diretório
Esse comando usa o Get-ChildItem
cmdlet para recuperar o conteúdo do diretório local, que inclui arquivos e diretórios.
Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType
O operador de pipeline (|
) envia os resultados para o Sort-Object
cmdlet. A $_.GetType()
instrução aplica o método GetType a cada arquivo ou diretório. Em seguida, Sort-Object
classifica os itens por tipo. Outro operador de pipeline envia os resultados para Get-Unique
. O parâmetro OnType direciona Get-Unique
para retornar apenas um objeto de cada tipo.
Exemplo 4: Obter processos exclusivos
Este comando obtém os nomes dos processos em execução no computador com as duplicatas já eliminadas.
Get-Process | Sort-Object | Select-Object processname | Get-Unique -AsString
O Get-Process
comando obtém todos os processos no computador. O operador de pipeline (|
) passa o resultado para Sort-Object
, que, por padrão, classifica os processos em ordem alfabética por ProcessName. Os resultados são canalizados para o Select-Object
cmdlet, que seleciona apenas os valores da propriedade ProcessName de cada objeto. Os resultados são então canalizados para Get-Unique
eliminar duplicatas.
O parâmetro AsString informa Get-Unique
para tratar os valores de ProcessName como cadeias de caracteres.
Sem esse parâmetro, Get-Unique
trata os valores de ProcessName como objetos e retorna apenas uma instância do objeto, ou seja, o primeiro nome de processo na lista.
Exemplo 5: Usar comparações que diferenciam maiúsculas de minúsculas para obter cadeias de caracteres exclusivas
Este exemplo usa comparações que não diferenciam maiúsculas de minúsculas para obter cadeias de caracteres exclusivas de uma matriz de cadeias de caracteres.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object -CaseSensitive | Get-Unique
aa
Aa
bb
Bb
Exemplo 6: Usar comparações que não diferenciam maiúsculas de minúsculas para obter cadeias de caracteres exclusivas
Este exemplo usa comparações que não diferenciam maiúsculas de minúsculas para obter cadeias de caracteres exclusivas de uma matriz de cadeias de caracteres.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object | Get-Unique -CaseInsensitive
aa
Bb
Parâmetros
-AsString
Indica que esse cmdlet usa os dados como uma cadeia de caracteres. Sem esse parâmetro, os dados são tratados como um objeto, portanto, quando você envia uma coleção de objetos do mesmo tipo para Get-Unique
, como uma coleção de arquivos, ele retorna apenas um (o primeiro). Você pode usar esse parâmetro para localizar os valores exclusivos das propriedades do objeto, como os nomes de arquivo.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-CaseInsensitive
Por padrão, Get-Unique
diferencia maiúsculas de minúsculas. Quando você usa esse parâmetro, o cmdlet usa comparações que não diferenciam maiúsculas de minúsculas.
Esse parâmetro foi adicionado no PowerShell 7.4.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InputObject
Especifica a entrada para Get-Unique
. Insira uma variável que contém os objetos ou digite um comando ou uma expressão que obtém os objetos.
Esse cmdlet trata a entrada enviada usando InputObject como uma coleção. Ele não enumera itens individuais na coleção. Como a coleção é um único item, a entrada enviada usando InputObject sempre é retornada inalterada.
Tipo: | PSObject |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-OnType
Indica que esse cmdlet retorna apenas um objeto de cada tipo.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
Você pode canalizar qualquer tipo de objeto para esse cmdlet.
Saídas
Esse cmdlet retorna seus objetos de entrada sem duplicatas.
Observações
O PowerShell inclui os seguintes aliases para Get-Unique
:
- Todas as plataformas:
gu
Para obter mais informações, consulte about_Aliases.
Para classificar uma lista, use Sort-Object
. Você também pode usar o parâmetro Unique de Sort-Object
para localizar os itens exclusivos em uma lista.