Get-Unique
Returnerar unika objekt från en sorterad lista.
Syntax
Get-Unique
[-InputObject <PSObject>]
[-AsString]
[-CaseInsensitive]
[<CommonParameters>]
Get-Unique
[-InputObject <PSObject>]
[-OnType]
[-CaseInsensitive]
[<CommonParameters>]
Description
Cmdleten Get-Unique
jämför varje objekt i en sorterad lista med nästa objekt, eliminerar dubbletter och returnerar bara en instans av varje objekt. Listan måste sorteras för att cmdleten ska fungera korrekt.
Som standard Get-Unique
är skiftlägeskänsligt. Därför anses strängar som endast skiljer sig åt i teckenhöljet vara unika.
Exempel
Exempel 1: Hämta unika ord i en textfil
Dessa kommandon hittar antalet unika ord i en textfil.
$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
$line.tolower().split(" ")
}) | Sort-Object | Get-Unique
$A.count
Det första kommandot hämtar filens File.txt
innehåll. Den konverterar varje textrad till gemener och delar sedan varje ord på en separat rad i utrymmet (" "
). Sedan sorterar den resulterande listan alfabetiskt (standardvärdet) och använder cmdleten Get-Unique
för att eliminera eventuella duplicerade ord. Resultaten lagras i variabeln $A
.
Det andra kommandot använder egenskapen Count för samlingen med strängar i $A
för att avgöra hur många objekt som finns i $A
.
Exempel 2: Hämta unika heltal i en matris
Det här kommandot hittar de unika medlemmarna i uppsättningen heltal.
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
Det första kommandot tar en matris med heltal som skrivs på kommandoraden, skickar dem till cmdleten Sort-Object
som ska sorteras och skickar dem sedan till Get-Unique
, vilket eliminerar dubbletter av poster.
Exempel 3: Hämta unika objekttyper i en katalog
Det här kommandot använder cmdleten Get-ChildItem
för att hämta innehållet i den lokala katalogen, som innehåller filer och kataloger.
Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType
Pipelineoperatorn (|
) skickar resultatet till cmdleten Sort-Object
. Instruktionen $_.GetType()
tillämpar Metoden GetType på varje fil eller katalog. Sort-Object
Sortera sedan objekten efter typ. En annan pipelineoperator skickar resultatet till Get-Unique
. Parametern OnType dirigerar Get-Unique
till att endast returnera ett objekt av varje typ.
Exempel 4: Hämta unika processer
Det här kommandot hämtar namnen på processer som körs på datorn med dubbletter borttagna.
Get-Process | Sort-Object | Select-Object processname | Get-Unique -AsString
Kommandot Get-Process
hämtar alla processer på datorn. Pipelineoperatorn (|
) skickar resultatet till Sort-Object
, som som standard sorterar processerna alfabetiskt efter ProcessName. Resultatet skickas till cmdleten Select-Object
, som endast väljer värdena för egenskapen ProcessName för varje objekt. Resultatet skickas sedan till för att Get-Unique
eliminera dubbletter.
Parametern AsString anger Get-Unique
att ProcessName-värdena ska behandlas som strängar.
Utan den här parametern Get-Unique
behandlar ProcessName-värdena som objekt och returnerar endast en instans av objektet, dvs. förnamn i listan.
Exempel 5: Använd skiftlägeskänsliga jämförelser för att hämta unika strängar
I det här exemplet används skiftlägesokänsliga jämförelser för att hämta unika strängar från en matris med strängar.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object -CaseSensitive | Get-Unique
aa
Aa
bb
Bb
Exempel 6: Använd skiftlägesokänsliga jämförelser för att hämta unika strängar
I det här exemplet används skiftlägesokänsliga jämförelser för att hämta unika strängar från en matris med strängar.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object | Get-Unique -CaseInsensitive
aa
Bb
Parametrar
-AsString
Anger att denna cmdlet använder data som en sträng. Utan den här parametern behandlas data som ett objekt, så när du skickar en samling objekt av samma typ till , till Get-Unique
exempel en samling filer, returneras bara en (den första). Du kan använda den här parametern för att hitta unika värden för objektegenskaper, till exempel filnamnen.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CaseInsensitive
Som standard Get-Unique
är skiftlägeskänsligt. När du använder den här parametern använder cmdleten skiftlägesokänsliga jämförelser.
Den här parametern lades till i PowerShell 7.4.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Anger indata för Get-Unique
. Ange en variabel som innehåller objekten eller skriv ett kommando eller uttryck som hämtar objekten.
Den här cmdleten behandlar indata som skickas med InputObject som en samling. Den räknar inte upp enskilda objekt i samlingen. Eftersom samlingen är ett enda objekt returneras alltid indata som skickas med InputObject oförändrade.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-OnType
Anger att denna cmdlet endast returnerar ett objekt av varje typ.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka alla typer av objekt till den här cmdleten.
Utdata
Den här cmdleten returnerar sina indataobjekt utan dubbletter.
Kommentarer
PowerShell innehåller följande alias för Get-Unique
:
- Alla plattformar:
gu
Mer information finns i about_Aliases.
Om du vill sortera en lista använder du Sort-Object
. Du kan också använda parametern Sort-Object
Unik för för att hitta de unika objekten i en lista.
Relaterade länkar
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för