Get-Unique
Retourneert unieke items uit een gesorteerde lijst.
Syntaxis
AsString (Standaard)
Get-Unique
[-InputObject <PSObject>]
[-AsString]
[-CaseInsensitive]
[<CommonParameters>]
UniqueByType
Get-Unique
[-InputObject <PSObject>]
[-OnType]
[-CaseInsensitive]
[<CommonParameters>]
Description
De Get-Unique cmdlet vergelijkt elk item in een gesorteerde lijst met het volgende item, elimineert duplicaten en retourneert slechts één exemplaar van elk item. De lijst moet worden gesorteerd om de cmdlet goed te laten werken.
Standaard is Get-Unique hoofdlettergevoelig. Als gevolg hiervan worden tekenreeksen die alleen verschillen in tekenbehuizing 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. Hiermee wordt elke tekstregel geconverteerd naar kleine letters en wordt elk woord vervolgens gesplitst op 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 elimineren. De resultaten worden opgeslagen in de $A variabele.
De tweede opdracht maakt gebruik van de eigenschap Count van de verzameling tekenreeksen in $A om te bepalen hoeveel items zich in $Abevinden.
Voorbeeld 2: Unieke gehele getallen ophalen in een matrix
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 gebruikt een matrix met gehele getallen die zijn getypt op de opdrachtregel, pijpt ze naar de Sort-Object cmdlet die moet worden gesorteerd en pijpt ze vervolgens naar Get-Unique, waardoor dubbele vermeldingen worden geëlimineerd.
Voorbeeld 3: Unieke objecttypen ophalen in een map
Met deze opdracht wordt de cmdlet Get-ChildItem gebruikt om de inhoud van de lokale map op te halen, waaronder bestanden en mappen.
Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType
De pijplijnoperator (|) verzendt de resultaten naar de cmdlet Sort-Object. De instructie $_.GetType() past de methode GetType toe op elk bestand of elke map. Vervolgens sorteert Sort-Object de items op type. Een andere pijplijnoperator verzendt de resultaten naar Get-Unique. Met de parameter OnType wordt Get-Unique om slechts één object van elk type te retourneren.
Voorbeeld 4: Unieke processen ophalen
Met deze opdracht worden de namen van processen die op de computer worden uitgevoerd, met dubbele waarden verwijderd.
Get-Process | Sort-Object | Select-Object ProcessName | Get-Unique -AsString
De opdracht Get-Process haalt alle processen op de computer op. De pijplijnoperator (|) geeft het resultaat door aan Sort-Object, waardoor de processen standaard alfabetisch worden gesorteerd op ProcessName. De resultaten worden doorgesluisd naar de cmdlet Select-Object, waarmee alleen de waarden van de eigenschap ProcessName van elk object worden geselecteerd. De resultaten worden vervolgens doorgesluisd naar Get-Unique om duplicaten te elimineren.
De parameter AsString vertelt Get-Unique de waarden ProcessName als tekenreeksen te behandelen.
Zonder deze parameter behandelt Get-Unique de ProcessName waarden als objecten en retourneert slechts één exemplaar van het object, dat wil gezegd de naam van het eerste proces in de lijst.
Voorbeeld 5: Hoofdlettergevoelige vergelijkingen gebruiken om unieke tekenreeksen op te halen
In dit voorbeeld worden hoofdlettergevoelige vergelijkingen gebruikt om unieke tekenreeksen op te halen uit een matrix met tekenreeksen.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object -CaseSensitive | Get-Unique
aa
Aa
bb
Bb
Voorbeeld 6: Hoofdlettergevoelige vergelijkingen gebruiken om unieke tekenreeksen op te halen
In dit voorbeeld worden hoofdlettergevoelige vergelijkingen gebruikt om unieke tekenreeksen op te halen uit een matrix met tekenreeksen.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object | Get-Unique -CaseInsensitive
aa
Bb
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 naar Get-Uniqueverzendt, zoals een verzameling bestanden, wordt er slechts één geretourneerd (de eerste). U kunt deze parameter gebruiken om de unieke waarden van objecteigenschappen te vinden, zoals de bestandsnamen.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | False |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
AsString
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-CaseInsensitive
Standaard is Get-Unique hoofdlettergevoelig. Wanneer u deze parameter gebruikt, gebruikt de cmdlet hoofdlettergevoelige vergelijkingen.
Deze parameter is toegevoegd in PowerShell 7.4.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | False |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-InputObject
Hiermee geeft u invoer 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 wordt 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 is verzonden met InputObject altijd ongewijzigd geretourneerd.
Parametereigenschappen
| Type: | PSObject |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | True |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-OnType
Geeft aan dat deze cmdlet slechts één object van elk type retourneert.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
UniqueByType
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
Invoerwaarden
PSObject
U kunt elk type object doorsluisen naar deze cmdlet.
Uitvoerwaarden
PSObject
Deze cmdlet retourneert de invoerobjecten zonder duplicaten.
Notities
PowerShell bevat de volgende aliassen voor Get-Unique:
- Alle platforms:
gu
Zie about_Aliasesvoor meer informatie.
Als u een lijst wilt sorteren, gebruikt u Sort-Object. U kunt ook de parameter Unique van Sort-Object gebruiken om de unieke items in een lijst te vinden.