Get-Unique
Vrátí jedinečné položky z seřazeného seznamu.
Syntaxe
Get-Unique
[-InputObject <PSObject>]
[-AsString]
[-CaseInsensitive]
[<CommonParameters>]
Get-Unique
[-InputObject <PSObject>]
[-OnType]
[-CaseInsensitive]
[<CommonParameters>]
Description
Rutina Get-Unique
porovná každou položku v seřazeném seznamu s další položkou, odstraní duplicity a vrátí pouze jednu instanci každé položky. Aby rutina správně fungovala, musí být seznam seřazený.
Ve výchozím nastavení Get-Unique
se rozlišují malá a velká písmena. Výsledkem je, že řetězce, které se liší pouze v písmenech znaků, jsou považovány za jedinečné.
Příklady
Příklad 1: Získání jedinečných slov v textovém souboru
Tyto příkazy najdou počet jedinečných slov v textovém souboru.
$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
$line.tolower().split(" ")
}) | Sort-Object | Get-Unique
$A.count
První příkaz získá obsah File.txt
souboru. Převede každý řádek textu na malá písmena a poté každé slovo rozdělí na samostatný řádek v prostoru (" "
). Potom seřadí výsledný seznam abecedně (výchozí) a použije rutinu Get-Unique
k odstranění duplicitních slov. Výsledky jsou uloženy v $A
proměnné.
Druhý příkaz používá vlastnost Count kolekce řetězců $A
k určení, kolik položek jsou v $A
.
Příklad 2: Získání jedinečných celých čísel v poli
Tento příkaz najde jedinečné členy sady celých čísel.
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
První příkaz vezme pole celých čísel zadaných na příkazovém řádku, předá je do Sort-Object
rutiny, která se má seřadit, a potom je Get-Unique
nasmadí do , což eliminuje duplicitní položky.
Příklad 3: Získání jedinečných typů objektů v adresáři
Tento příkaz pomocí rutiny Get-ChildItem
načte obsah místního adresáře, který obsahuje soubory a adresáře.
Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType
Operátor kanálu (|
) odešle výsledky do rutiny Sort-Object
. Příkaz $_.GetType()
použije metodu GetType pro každý soubor nebo adresář. Sort-Object
Potom položky seřadí podle typu. Jiný operátor kanálu odešle výsledky do Get-Unique
. Parametr OnType směruje Get-Unique
na vrácení pouze jednoho objektu každého typu.
Příklad 4: Získání jedinečných procesů
Tento příkaz získá názvy procesů spuštěných v počítači s odstraněnými duplicitními položkami.
Get-Process | Sort-Object | Select-Object processname | Get-Unique -AsString
Příkaz Get-Process
načte všechny procesy v počítači. Operátor kanálu (|
) předá výsledek Sort-Object
, který ve výchozím nastavení seřadí procesy abecedně podle ProcessName. Výsledky se předávají rutině Select-Object
, která vybere pouze hodnoty vlastnosti ProcessName každého objektu. Výsledky se pak předají tak, aby Get-Unique
se eliminovaly duplicity.
Parametr AsString říká Get-Unique
, že má zacházet s hodnotami ProcessName jako s řetězci.
Bez tohoto parametru Get-Unique
zachází s hodnotami ProcessName jako s objekty a vrací pouze jednu instanci objektu, tj. první název procesu v seznamu.
Příklad 5: Použití porovnání s rozlišováním velkých a malých písmen k získání jedinečných řetězců
Tento příklad používá porovnání bez rozlišování malých a velkých písmen k získání jedinečných řetězců z pole řetězců.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object -CaseSensitive | Get-Unique
aa
Aa
bb
Bb
Příklad 6: Použití porovnání nerozlišující malá a velká písmena k získání jedinečných řetězců
Tento příklad používá porovnání bez rozlišování malých a velkých písmen k získání jedinečných řetězců z pole řetězců.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object | Get-Unique -CaseInsensitive
aa
Bb
Parametry
-AsString
Označuje, že tato rutina používá data jako řetězec. Bez tohoto parametru se data považují za objekt, takže když odešlete kolekci objektů stejného typu, Get-Unique
například kolekci souborů, vrátí pouze jeden (první). Tento parametr můžete použít k vyhledání jedinečných hodnot vlastností objektu, jako jsou názvy souborů.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CaseInsensitive
Ve výchozím nastavení Get-Unique
se rozlišují malá a velká písmena. Při použití tohoto parametru používá rutina porovnání bez rozlišování velkých a malých písmen.
Tento parametr byl přidán v PowerShellu 7.4.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-InputObject
Určuje vstup pro Get-Unique
. Zadejte proměnnou obsahující objekty nebo zadejte příkaz nebo výraz, který objekty získá.
Tato rutina zpracovává vstup odeslaný pomocí InputObject jako kolekce. Nevypíše jednotlivé položky v kolekci. Protože kolekce je jedna položka, vstup odeslaný pomocí InputObject se vždy vrátí beze změny.
Typ: | PSObject |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-OnType
Označuje, že tato rutina vrací pouze jeden objekt každého typu.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Do této rutiny můžete převést libovolný typ objektu.
Výstupy
Tato rutina vrátí vstupní objekty bez duplicit.
Poznámky
PowerShell obsahuje následující aliasy pro Get-Unique
:
- Všechny platformy:
gu
Další informace najdete v tématu about_Aliases.
Chcete-li seznam seřadit, použijte Sort-Object
. Jedinečný parametr můžete použít také k vyhledání jedinečných Sort-Object
položek v seznamu.