Compartilhar via


Get-Unique

Retorna itens exclusivos de uma lista classificada.

Sintaxe

AsString (Default)

Get-Unique
    [-InputObject <PSObject>]
    [-AsString]
    [<CommonParameters>]

UniqueByType

Get-Unique
    [-InputObject <PSObject>]
    [-OnType]
    [<CommonParameters>]

Description

O cmdlet Get-Unique 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.

Get-Unique diferencia maiúsculas de minúsculas. Como resultado, as cadeias de caracteres que diferem apenas na caixa de caracteres são consideradas exclusivas.

Exemplos

Exemplo 1: Obter palavras exclusivas em um arquivo de texto

Esses comandos encontram 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 arquivo File.txt. Ele converte cada linha de texto em 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 qualquer palavra duplicada. 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: Obter inteiros exclusivos em uma matriz

Esse comando localiza os membros exclusivos do conjunto de 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, redireciona-os para o cmdlet Sort-Object a ser classificado e, em seguida, os redireciona para Get-Unique, o que elimina entradas duplicadas.

Exemplo 3: Obter tipos de objeto exclusivos em um diretório

Esse comando usa o cmdlet Get-ChildItem 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 cmdlet Sort-Object. A instrução $_.GetType() 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

Esse comando obtém os nomes dos processos em execução no computador com duplicatas eliminadas.

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

O comando Get-Process 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 ProcessName. Os resultados são canalizados para o cmdlet Select-Object, que seleciona apenas os valores da propriedade ProcessName de cada objeto. Em seguida, os resultados são canalizados para Get-Unique para eliminar duplicatas.

O parâmetro AsString informa Get-Unique para tratar os valores ProcessName como cadeias de caracteres. Sem esse parâmetro, Get-Unique trata os valores ProcessName como objetos e retorna apenas uma instância do objeto, ou seja, o nome do primeiro processo na lista.

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.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

AsString
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-InputObject

Especifica a entrada para Get-Unique. Insira uma variável que contenha os objetos ou digite um comando ou 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.

Propriedades do parâmetro

Tipo:PSObject
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-OnType

Indica que esse cmdlet retorna apenas um objeto de cada tipo.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

UniqueByType
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

PSObject

Você pode canalizar qualquer tipo de objeto para este cmdlet.

Saídas

PSObject

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.