Delen via


Get-Unique

Retourneert unieke items uit een gesorteerde lijst.

Syntax

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

Description

De Get-Unique cmdlet vergelijkt elk item in een gesorteerde lijst met het volgende item, elimineert dubbele waarden en retourneert slechts één exemplaar van elk item. De lijst moet worden gesorteerd om de cmdlet goed te laten werken.

Get-Unique is hoofdlettergevoelig. Als gevolg hiervan worden tekenreeksen die alleen verschillen in hoofdletters als uniek beschouwd.

Voorbeelden

Voorbeeld 1: Unieke woorden ophalen in een tekstbestand

Met deze opdrachten wordt het aantal unieke woorden in een tekstbestand gevonden.

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

Met de eerste opdracht wordt de inhoud van het File.txt bestand opgeslagen. Elke regel tekst wordt geconverteerd naar kleine letters en vervolgens wordt elk woord gesplitst over een afzonderlijke regel in de spatie (" "). Vervolgens wordt de resulterende lijst alfabetisch gesorteerd (de standaardinstelling) en wordt de Get-Unique cmdlet gebruikt om dubbele woorden te verwijderen. De resultaten worden opgeslagen in de $A variabele.

De tweede opdracht gebruikt de eigenschap Count van de verzameling tekenreeksen in $A om te bepalen hoeveel items zich in $Abevinden.

Voorbeeld 2: unieke gehele getallen in een matrix ophalen

Met deze opdracht worden de unieke leden van de set gehele getallen gevonden.

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

De eerste opdracht neemt een matrix van gehele getallen die zijn getypt op de opdrachtregel, leidt ze door naar de Sort-Object cmdlet die moet worden gesorteerd en vervolgens doorsluizen naar Get-Unique, waardoor dubbele vermeldingen worden geëlimineerd.

Voorbeeld 3: Unieke objecttypen ophalen in een map

Met deze opdracht wordt de Get-ChildItem cmdlet gebruikt om de inhoud van de lokale map op te halen, die bestanden en mappen bevat.

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

De pijplijnoperator (|) verzendt de resultaten naar de Sort-Object cmdlet. Met de $_.GetType() instructie wordt de methode GetType toegepast op elk bestand of elke map. Sort-Object Vervolgens sorteert u de items op type. Een andere pijplijnoperator verzendt de resultaten naar Get-Unique. De parameter OnType retourneert Get-Unique slechts één object van elk type.

Voorbeeld 4: Unieke processen ophalen

Met deze opdracht worden de namen van processen die op de computer worden uitgevoerd en dubbele waarden verwijderd.

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

De Get-Process opdracht haalt alle processen op de computer op. De pijplijnoperator (|) geeft het resultaat door aan Sort-Object, waarmee de processen standaard alfabetisch worden gesorteerd op ProcessName. De resultaten worden doorgesluisd naar de Select-Object cmdlet, die alleen de waarden van de eigenschap ProcessName van elk object selecteert. De resultaten worden vervolgens doorgesluisd naar Get-Unique om duplicaten te elimineren.

De parameter AsString vertelt dat Get-Unique de ProcessName-waarden moeten worden behandeld als tekenreeksen. Zonder deze parameter Get-Unique worden de waarden van ProcessName als objecten behandeld en wordt slechts één exemplaar van het object geretourneerd, namelijk de naam van het eerste proces in de lijst.

Parameters

-AsString

Geeft aan dat deze cmdlet de gegevens als een tekenreeks gebruikt. Zonder deze parameter worden gegevens behandeld als een object, dus wanneer u een verzameling objecten van hetzelfde type verzendt naar Get-Unique, zoals een verzameling bestanden, wordt er slechts één (de eerste) geretourneerd. U kunt deze parameter gebruiken om de unieke waarden van objecteigenschappen te vinden, zoals de bestandsnamen.

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

-InputObject

Hiermee geeft u invoer op voor Get-Unique. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald.

Deze cmdlet behandelt de invoer die is verzonden met behulp van InputObject als een verzameling. Er worden geen afzonderlijke items in de verzameling opgesomd. Omdat de verzameling één item is, wordt invoer die wordt verzonden met behulp van InputObject altijd ongewijzigd geretourneerd.

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

-OnType

Geeft aan dat deze cmdlet slechts één object van elk type retourneert.

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

Invoerwaarden

PSObject

U kunt elk type object doorsnijden naar deze cmdlet.

Uitvoerwaarden

PSObject

Deze cmdlet retourneert de invoerobjecten zonder duplicaten.

Notities

PowerShell bevat de volgende aliassen voor Get-Unique:

  • Alle platformen:
    • gu

Zie about_Aliases voor meer informatie.

Als u een lijst wilt sorteren, gebruikt u Sort-Object. U kunt ook de parameter Uniek van Sort-Object gebruiken om de unieke items in een lijst te vinden.