Get-Unique
Restituisce elementi univoci da un elenco ordinato.
Sintassi
Get-Unique
[-InputObject <PSObject>]
[-AsString]
[<CommonParameters>]
Get-Unique
[-InputObject <PSObject>]
[-OnType]
[<CommonParameters>]
Descrizione
Il cmdlet Get-Unique
confronta ogni elemento di 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 ordinare l'elenco.
Get-Unique
fa distinzione tra maiuscole e minuscole. Di conseguenza, le stringhe che differiscono solo per le maiuscole e minuscole di caratteri sono 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 File.txt
. Converte ogni riga di testo in lettere minuscole e quindi suddivide ogni parola in una riga separata nello spazio (" "
). Ordina quindi l'elenco risultante in ordine alfabetico (impostazione predefinita) e usa il cmdlet Get-Unique
per eliminare qualsiasi parola duplicata. I risultati vengono archiviati nella variabile $A
.
Il secondo comando usa la proprietà Count dell'insieme di stringhe in $A
per determinare il numero di elementi presenti in $A
.
Esempio 2: Ottenere numeri interi univoci in una matrice
Questo comando trova i membri univoci del set di numeri 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 Sort-Object
da ordinare e quindi li invia tramite pipe a Get-Unique
, che elimina le voci duplicate.
Esempio 3: Ottenere tipi di oggetto univoci in una directory
Questo comando usa il cmdlet Get-ChildItem
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 cmdlet Sort-Object
. L'istruzione $_.GetType()
applica il metodo GetType a ogni file o directory. Quindi, Sort-Object
ordina gli elementi in base al tipo. Un altro operatore pipeline invia i risultati a Get-Unique
. Il parametro OnType indirizza Get-Unique
a restituire un solo oggetto di ogni tipo.
Esempio 4: Ottenere processi univoci
Questo comando ottiene i nomi dei processi in esecuzione nel computer con duplicati eliminati.
Get-Process | Sort-Object | Select-Object ProcessName | Get-Unique -AsString
Il comando Get-Process
ottiene tutti i processi nel computer. L'operatore pipeline (|
) passa il risultato a Sort-Object
, che, per impostazione predefinita, ordina i processi in ordine alfabetico ProcessName. I risultati vengono inviati tramite pipe al cmdlet Select-Object
, 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 di ProcessName come stringhe.
Senza questo parametro, Get-Unique
considera i valori di 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à dell'oggetto, ad esempio i nomi di file.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specifica l'input per Get-Unique
. Immettere una variabile contenente gli oggetti o 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.
Tipo: | PSObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-OnType
Indica che questo cmdlet restituisce un solo oggetto di ogni tipo.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.