Get-Unique

Restituisce elementi univoci da un elenco ordinato.

Sintassi

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

Descrizione

Il Get-Unique cmdlet confronta ogni elemento in un elenco ordinato con l'elemento successivo, elimina i duplicati e restituisce una sola istanza di ogni elemento. Per il corretto funzionamento del cmdlet, è necessario che l'elenco sia ordinato.

Per impostazione predefinita, Get-Unique fa distinzione tra maiuscole e minuscole. Di conseguenza, le stringhe che differiscono solo nell'uso delle maiuscole e minuscole vengono considerate univoche.

Esempio

Esempio 1: Ottenere parole univoce in un file di testo

Questi comandi trovano il numero di parole univoche in un file di testo.

$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
    $line.tolower().split(" ")
  }) | Sort-Object | Get-Unique
$A.count

Il primo comando ottiene il contenuto del File.txt file. Converte ogni riga di testo in lettere minuscole e quindi divide ogni parola in una riga separata nello spazio (" "). Ordina quindi l'elenco risultante in ordine alfabetico (impostazione predefinita) e usa il Get-Unique cmdlet per eliminare eventuali parole duplicate. I risultati vengono archiviati nella $A variabile .

Il secondo comando usa la proprietà Count dell'insieme di stringhe in $A per determinare il numero di elementi in $A.

Esempio 2: Ottenere numeri interi univoci in una matrice

Questo comando trova i membri univoci del set di interi.

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

Il primo comando accetta una matrice di numeri interi digitati nella riga di comando, li invia tramite pipe al cmdlet per l'ordinamento Sort-Object e quindi li invia tramite pipe a Get-Unique, eliminando le voci duplicate.

Esempio 3: Ottenere tipi di oggetto univoci in una directory

Questo comando usa il Get-ChildItem cmdlet per recuperare il contenuto della directory locale, che include file e directory.

Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType

L'operatore pipeline (|) invia i risultati al Sort-Object cmdlet . L'istruzione $_.GetType() applica il metodo GetType a ogni file o directory. Sort-Object Ordina quindi gli elementi in base al tipo. Un altro operatore della pipeline invia i risultati a Get-Unique. Il parametro OnType indica Get-Unique di restituire un solo oggetto di ogni tipo.

Esempio 4: Ottenere processi univoci

Questo comando ottiene i nomi dei processi in esecuzione nel computer con i duplicati eliminati.

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

Il Get-Process comando ottiene tutti i processi nel computer. L'operatore pipeline (|) passa il risultato a , che, per impostazione predefinita, ordina i processi in ordine alfabetico in base a Sort-ObjectProcessName. I risultati vengono inviati tramite pipe al Select-Object cmdlet, che seleziona solo i valori della proprietà ProcessName di ogni oggetto. I risultati vengono quindi inviati tramite pipe a Get-Unique per eliminare i duplicati.

Il parametro AsString indica Get-Unique di considerare i valori ProcessName come stringhe. Senza questo parametro, Get-Unique considera i valori ProcessName come oggetti e restituisce solo un'istanza dell'oggetto, ovvero il nome del primo processo nell'elenco.

Esempio 5: Usare confronti con distinzione tra maiuscole e minuscole per ottenere stringhe univoche

In questo esempio vengono usati confronti senza distinzione tra maiuscole e minuscole per ottenere stringhe univoche da una matrice di stringhe.

"aa", "Aa", "Bb", "bb", "aa" | Sort-Object -CaseSensitive | Get-Unique

aa
Aa
bb
Bb

Esempio 6: Usare confronti senza distinzione tra maiuscole e minuscole per ottenere stringhe univoche

In questo esempio vengono usati confronti senza distinzione tra maiuscole e minuscole per ottenere stringhe univoche da una matrice di stringhe.

"aa", "Aa", "Bb", "bb", "aa" | Sort-Object | Get-Unique -CaseInsensitive

aa
Bb

Parametri

-AsString

Indica che questo cmdlet usa i dati come stringa. Senza questo parametro, i dati vengono considerati come un oggetto, quindi quando si invia una raccolta di oggetti dello stesso tipo a Get-Unique, ad esempio una raccolta di file, restituisce solo uno (il primo). È possibile usare questo parametro per trovare i valori univoci delle proprietà degli oggetti, ad esempio i nomi file.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CaseInsensitive

Per impostazione predefinita, Get-Unique fa distinzione tra maiuscole e minuscole. Quando si usa questo parametro, il cmdlet usa confronti senza distinzione tra maiuscole e minuscole.

Questo parametro è stato aggiunto in PowerShell 7.4.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Specifica l'input per Get-Unique. Immettere una variabile che contiene gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti.

Questo cmdlet considera l'input inviato usando InputObject come raccolta. Non enumera singoli elementi nella raccolta. Poiché la raccolta è un singolo elemento, l'input inviato tramite InputObject viene sempre restituito invariato.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OnType

Indica che questo cmdlet restituisce un solo oggetto di ogni tipo.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

PSObject

È possibile inviare tramite pipe qualsiasi tipo di oggetto a questo cmdlet.

Output

PSObject

Questo cmdlet restituisce gli oggetti di input senza duplicati.

Note

PowerShell include gli alias seguenti per Get-Unique:

  • Tutte le piattaforme:
    • gu

Per altre informazioni, vedere about_Aliases.

Per ordinare un elenco, usare Sort-Object. È anche possibile usare il parametro Unique di Sort-Object per trovare gli elementi univoci in un elenco.