Get-Unique

Returnerar unika objekt från en sorterad lista.

Syntax

Get-Unique
   [-InputObject <PSObject>]
   [-AsString]
   [<CommonParameters>]
Get-Unique
   [-InputObject <PSObject>]
   [-OnType]
   [<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.

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 blanksteget (" "). Sedan sorterar den resulterande listan alfabetiskt (standard) och använder cmdleten Get-Unique för att eliminera dubblettord. 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 med 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 dubblettposter.

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 Sorterar 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. Resultaten skickas sedan till för att Get-Unique eliminera dubbletter.

Parametern AsString instruerarGet-Unique att behandla ProcessName-värdena som strängar. Utan den här parametern Get-Unique behandlar ProcessName-värdena som objekt och returnerar endast en instans av -objektet, det vill sägs vara det första processnamnet i listan.

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-Uniqueexempel 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:None
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 enskilt 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

PSObject

Du kan skicka alla typer av objekt till den här cmdleten.

Utdata

PSObject

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-ObjectUnik för för att hitta de unika objekten i en lista.