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-Unique
elementu , 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
Do tego polecenia cmdlet można przekazać dowolny typ obiektu.
Dane wyjściowe
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.