Get-Unique
Retorna os itens exclusivos de uma lista classificada.
Sintaxe
Get-Unique [-AsString] [-InputObject <psobject>] [<CommonParameters>]
Get-Unique [-OnType] [-InputObject <psobject>] [<CommonParameters>]
Descrição
O cmdlet Get-Unique compara cada item em uma lista classificada ao próximo item, elimina duplicações e retorna somente uma instância de cada item. A lista deve ser classificada para que o cmdlet funcione corretamente.
Parâmetros
-AsString
Considera os dados como uma cadeia de caracteres. Sem esse parâmetro, os dados são tratados como objeto, de forma que quando você envia uma coleção de objetos do mesmo tipo para Get-Unique, como uma coleção de arquivos, ele retorna somente um (o primeiro). Você pode usar esse parâmetro para localizar os valores exclusivos das propriedades de objeto, como nomes de arquivo.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-InputObject <psobject>
Aceita entrada para Get-Unique. Insira uma variável que contenha os objetos ou digite um comando ou expressão que obtenha os objetos.
Get-Unique trata a entrada enviada usando o InputObject como uma coleção; ele não enumera os itens individuais na coleção. Como a coleção é um item individual, a entrada enviada usando o InputObject é sempre retornada sem alterações.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByValue) |
Aceitar caracteres curinga? |
false |
-OnType
Retorna apenas um objeto de cada tipo.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas |
System.Management.Automation.PSObject Você pode canalizar qualquer tipo de objeto para Get-Unique. |
Saídas |
System.Management.Automation.PSObject O tipo de objeto que Get-Unique retorna é determinado pela entrada. |
Observações
Você também pode fazer referência a Get-Unique usando seu alias interno, "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.
Exemplo 1
C:\PS>$a = $(foreach ($line in get-content C:\Test1\File1.txt) {$line.tolower().split(" ")}) | sort | get-unique
C:\PS> $a.count
Descrição
-----------
Esses comandos localizam o número de palavras exclusivas em um arquivo de texto.
O primeiro comando obtém o conteúdo do arquivo File.txt. Ele converte cada linha de texto para letras minúsculas e 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 cmdlet Get-Unique para eliminar quaisquer palavras duplicadas. Os resultados são armazenados na variável $a.
O segundo comando usa a propriedade Count da coleção de cadeias de caracteres em $a para determinar quantos itens estão em $a.
Exemplo 2
C:\PS>1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | sort-object | Get-Unique
Descrição
-----------
Este comando localiza os membros exclusivos do conjunto de inteiros. O primeiro comando usa uma matriz de inteiros digitados na linha de comando, canaliza-os para o cmdlet Sort-Object para que sejam classificados e, depois, canaliza-os para Get-Unique, o qual elimina as entradas duplicadas.
Exemplo 3
C:\PS>get-childitem | sort-object {$_.GetType()} | unique -OnType
Descrição
-----------
Esse comando usa o cmdlet Get-ChildItem para recuperar o conteúdo do diretório local, que inclui arquivos e diretórios. O operador de pipeline (|) envia os resultados para o cmdlet Sort-Object. A declaração "$_.GetType()" aplica o método GetType para 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
C:\PS>get-process | sort-object | select processname | get-unique -asstring
Descrição
-----------
Este comando obtém os nomes dos processos em execução no computador com as entradas duplicadas eliminadas.
O comando Get-Process obtém todos os processos do computador. O operador de pipeline (|) passa o resultado para Sort-Object, que, por padrão, classifica os processos em ordem alfabética pelo ProcessName. Os resultados são canalizados para o cmdlet Select-Object, que seleciona apenas os valores da propriedade ProcessName de cada objeto. Os resultados são canalizados para Get-Unique, o qual eliminará as entradas duplicadas.
O parâmetro AsString avisa Get-Unique para considerar os valores de ProcessName como cadeias de caracteres. Sem esse parâmetro, Get-Unique considera os valores de ProcessName como objetos e retorna somente uma instância do objeto, ou seja, o primeiro nome de processo na lista.