Get-Unique
Restituisce elementi univoci da un elenco ordinato.
Sintassi
Get-Unique
[-InputObject <PSObject>]
[-AsString]
[<CommonParameters>]
Get-Unique
[-InputObject <PSObject>]
[-OnType]
[<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.
Get-Unique
supporta la 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-Object
ProcessName. 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.
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: | None |
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
È possibile inviare tramite pipe qualsiasi tipo di oggetto a questo cmdlet.
Output
Questo cmdlet restituisce gli oggetti di input senza duplicati.
Note
Windows PowerShell include gli alias seguenti per Get-Unique
:
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.