Udostępnij za pośrednictwem


Get-Unique

Zwraca unikatowe elementy z posortowanej listy.

Składnia

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

Opis

Polecenie Get-Unique cmdlet porównuje każdy element na posortowanej liście do następnego elementu, eliminuje duplikaty i zwraca tylko jedno wystąpienie każdego elementu. Aby polecenie cmdlet działało prawidłowo, należy posortować listę.

Domyślnie uwzględniana Get-Unique jest wielkość liter. W związku z tym ciągi, które różnią się tylko wielkością znaków, są uważane za unikatowe.

Przykłady

Przykład 1. Pobieranie unikatowych wyrazów w pliku tekstowym

Te polecenia znajdują liczbę unikatowych wyrazów w pliku tekstowym.

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

Pierwsze polecenie pobiera zawartość File.txt pliku. Konwertuje każdy wiersz tekstu na małe litery, a następnie dzieli każde słowo na oddzielny wiersz w przestrzeni (" "). Następnie sortuje wynikowej listy alfabetycznie (wartość domyślna) i używa Get-Unique polecenia cmdlet w celu wyeliminowania zduplikowanych wyrazów. Wyniki są przechowywane w zmiennej $A .

Drugie polecenie używa właściwości Count kolekcji ciągów w $A programie , aby określić, ile elementów znajduje się w elemecie $A.

Przykład 2. Pobieranie unikatowych liczb całkowitych w tablicy

To polecenie znajduje unikatowe elementy członkowskie zestawu liczb całkowitych.

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

Pierwsze polecenie przyjmuje tablicę liczb całkowitych wpisanych w wierszu polecenia, potokuje je do Sort-Object polecenia cmdlet do sortowania, a następnie potokuje je do Get-Uniqueelementu , co eliminuje zduplikowane wpisy.

Przykład 3. Pobieranie unikatowych typów obiektów w katalogu

To polecenie używa Get-ChildItem polecenia cmdlet do pobrania zawartości katalogu lokalnego, który zawiera pliki i katalogi.

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

Operator potoku (|) wysyła wyniki do Sort-Object polecenia cmdlet . Instrukcja $_.GetType() stosuje metodę GetType do każdego pliku lub katalogu. Sort-Object Następnie sortuje elementy według typu. Inny operator potoku wysyła wyniki do .Get-Unique Parametr OnType kieruje Get-Unique do zwracania tylko jednego obiektu każdego typu.

Przykład 4. Uzyskiwanie unikatowych procesów

To polecenie pobiera nazwy procesów uruchomionych na komputerze z wyeliminowanymi duplikatami.

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

Polecenie Get-Process pobiera wszystkie procesy na komputerze. Operator potoku (|) przekazuje wynik do Sort-Object, który domyślnie sortuje procesy alfabetycznie według parametru ProcessName. Wyniki są przesyłane potokami do Select-Object polecenia cmdlet, które wybiera tylko wartości właściwości ProcessName każdego obiektu. Wyniki są następnie przesyłane potokami w celu Get-Unique wyeliminowania duplikatów.

Parametr AsString informuje Get-Unique o traktowaniu wartości ProcessName jako ciągów. Bez tego parametru Get-Unique traktuje wartości ProcessName jako obiekty i zwraca tylko jedno wystąpienie obiektu, czyli pierwszą nazwę procesu na liście.

Przykład 5. Użyj porównań z uwzględnieniem wielkości liter, aby uzyskać unikatowe ciągi

W tym przykładzie użyto porównań bez uwzględniania wielkości liter, aby uzyskać unikatowe ciągi z tablicy ciągów.

"aa", "Aa", "Bb", "bb", "aa" | Sort-Object -CaseSensitive | Get-Unique

aa
Aa
bb
Bb

Przykład 6. Używanie porównań bez uwzględniania wielkości liter w celu uzyskania unikatowych ciągów

W tym przykładzie użyto porównań bez uwzględniania wielkości liter, aby uzyskać unikatowe ciągi z tablicy ciągów.

"aa", "Aa", "Bb", "bb", "aa" | Sort-Object | Get-Unique -CaseInsensitive

aa
Bb

Parametry

-AsString

Wskazuje, że to polecenie cmdlet używa danych jako ciągu. Bez tego parametru dane są traktowane jako obiekt, więc po przesłaniu kolekcji obiektów tego samego typu do Get-Unique, takiej jak kolekcja plików, zwraca tylko jeden (pierwszy). Tego parametru można użyć do znalezienia unikatowych wartości właściwości obiektu, takich jak nazwy plików.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-CaseInsensitive

Domyślnie uwzględniana Get-Unique jest wielkość liter. W przypadku użycia tego parametru polecenie cmdlet używa porównań bez uwzględniania wielkości liter.

Ten parametr został dodany w programie PowerShell 7.4.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-InputObject

Określa dane wejściowe dla elementu Get-Unique. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.

To polecenie cmdlet traktuje dane wejściowe przesłane przy użyciu obiektu InputObject jako kolekcji. Nie wylicza pojedynczych elementów w kolekcji. Ponieważ kolekcja jest pojedynczym elementem, dane wejściowe przesłane przy użyciu obiektu InputObject są zawsze zwracane bez zmian.

Typ:PSObject
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-OnType

Wskazuje, że to polecenie cmdlet zwraca tylko jeden obiekt każdego typu.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

PSObject

Do tego polecenia cmdlet można przekazać dowolny typ obiektu.

Dane wyjściowe

PSObject

To polecenie cmdlet zwraca swoje obiekty wejściowe bez duplikatów.

Uwagi

Program PowerShell zawiera następujące aliasy dla programu Get-Unique:

  • Wszystkie platformy:
    • gu

Aby uzyskać więcej informacji, zobacz about_Aliases.

Aby posortować listę, użyj polecenia Sort-Object. Możesz również użyć unikatowego parametru , Sort-Object aby znaleźć unikatowe elementy na liście.