Sdílet prostřednictvím


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-Uniquenasmadí 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-Uniquenapří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

PSObject

Do této rutiny můžete převést libovolný typ objektu.

Výstupy

PSObject

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.