Get-Unique
Sıralanmış bir listeden benzersiz öğeler döndürür.
Sözdizimi
Get-Unique
[-InputObject <PSObject>]
[-AsString]
[-CaseInsensitive]
[<CommonParameters>]
Get-Unique
[-InputObject <PSObject>]
[-OnType]
[-CaseInsensitive]
[<CommonParameters>]
Description
Get-Unique
cmdlet'i, sıralanmış listedeki her öğeyi bir sonraki öğeyle karşılaştırır, yinelenenleri ortadan kaldırır ve her öğenin yalnızca bir örneğini döndürür. Cmdlet'in düzgün çalışması için liste sıralanmalıdır.
Varsayılan olarak, Get-Unique
büyük/küçük harfe duyarlıdır. Sonuç olarak, yalnızca karakter büyük/küçük harfe göre farklılık gösteren dizeler benzersiz olarak kabul edilir.
Örnekler
Örnek 1: Metin dosyasında benzersiz sözcükler alma
Bu komutlar, bir metin dosyasındaki benzersiz sözcüklerin sayısını bulur.
$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
$line.ToLower().Split(" ")
}) | Sort-Object | Get-Unique
$A.Count
İlk komut File.txt
dosyasının içeriğini alır. Her metin satırını küçük harflere dönüştürür ve sonra her sözcüğü boşlukta ayrı bir satıra böler (" "
). Ardından, sonuçta elde edilen listeyi alfabetik olarak (varsayılan) sıralar ve yinelenen sözcükleri ortadan kaldırmak için Get-Unique
cmdlet'ini kullanır. Sonuçlar $A
değişkeninde depolanır.
İkinci komut, içinde kaç öğe olduğunu belirlemek için $A
dize koleksiyonunun $A
özelliğini kullanır.
Örnek 2: Dizide benzersiz tamsayılar alma
Bu komut, tamsayı kümesinin benzersiz üyelerini bulur.
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
İlk komut, komut satırına yazılan bir tamsayı dizisini alır, sıralanacak Sort-Object
cmdlet'ine aktarır ve sonra bunları yinelenen girdileri ortadan kaldıran Get-Unique
'e aktarır.
Örnek 3: Dizinde benzersiz nesne türlerini alma
Bu komut, dosyaları ve dizinleri içeren yerel dizinin içeriğini almak için Get-ChildItem
cmdlet'ini kullanır.
Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType
İşlem hattı işleci (|
), sonuçları Sort-Object
cmdlet'ine gönderir.
$_.GetType()
deyimi, her dosyaya veya dizine GetType yöntemini uygular. Ardından Sort-Object
öğeleri türe göre sıralar. Başka bir işlem hattı işleci sonuçları Get-Unique
gönderir.
OnType parametresi, Get-Unique
her türden yalnızca bir nesne döndürmeye yönlendirir.
Örnek 4: Benzersiz işlemler alma
Bu komut, yinelenenlerin ortadan kaldırıldığı bilgisayarda çalışan işlemlerin adlarını alır.
Get-Process | Sort-Object | Select-Object ProcessName | Get-Unique -AsString
Get-Process
komutu bilgisayardaki tüm işlemleri alır. İşlem hattı işleci (|
) sonucu Sort-Object
geçirir ve varsayılan olarak işlemleri ProcessNamegöre alfabetik olarak sıralar. Sonuçlar, her nesnenin Select-Object
özelliğinin yalnızca değerlerini seçen cmdlet'ine yöneltilir. Sonuçlar daha sonra yinelenenleri ortadan kaldırmak için Get-Unique
'a yöneltilir.
AsString parametresi, Get-Unique
ProcessName değerlerini dize olarak işlemesini söyler.
Bu parametre olmadan, Get-Unique
ProcessName değerlerini nesne olarak değerlendirir ve nesnenin yalnızca bir örneğini, yani listedeki ilk işlem adını döndürür.
Örnek 5: Benzersiz dizeleri almak için büyük/küçük harfe duyarlı karşılaştırmalar kullanma
Bu örnek, bir dizi dizeden benzersiz dizeler almak için büyük/küçük harfe duyarlı olmayan karşılaştırmalar kullanır.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object -CaseSensitive | Get-Unique
aa
Aa
bb
Bb
Örnek 6: Benzersiz dizeleri almak için büyük/küçük harfe duyarlı olmayan karşılaştırmalar kullanma
Bu örnek, bir dizi dizeden benzersiz dizeler almak için büyük/küçük harfe duyarlı olmayan karşılaştırmalar kullanır.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object | Get-Unique -CaseInsensitive
aa
Bb
Parametreler
-AsString
Bu cmdlet'in verileri dize olarak kullandığını gösterir. Bu parametre olmadan veriler bir nesne olarak değerlendirilir, bu nedenle dosya koleksiyonu gibi Get-Unique
için aynı türde bir nesne koleksiyonu gönderdiğinizde yalnızca bir (ilk) döndürür. Dosya adları gibi nesne özelliklerinin benzersiz değerlerini bulmak için bu parametreyi kullanabilirsiniz.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-CaseInsensitive
Varsayılan olarak, Get-Unique
büyük/küçük harfe duyarlıdır. Bu parametreyi kullandığınızda, cmdlet büyük/küçük harfe duyarsız karşılaştırmalar kullanır.
Bu parametre PowerShell 7.4'e eklendi.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-InputObject
Get-Unique
girişini belirtir. Nesneleri içeren bir değişken girin veya nesneleri alan bir komut veya ifade yazın.
Bu cmdlet, InputObject kullanılarak gönderilen girişi koleksiyon olarak ele alır. Koleksiyondaki tek tek öğeleri listelemez. Koleksiyon tek bir öğe olduğundan, InputObject kullanılarak gönderilen girişler her zaman değişmeden döndürülür.
Tür: | PSObject |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-OnType
Bu cmdlet'in her türden yalnızca bir nesne döndürdüğünü gösterir.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
Herhangi bir nesne türünü bu cmdlet'e yöneltebilirsiniz.
Çıkışlar
Bu cmdlet, giriş nesnelerini yineleme olmadan döndürür.
Notlar
PowerShell, Get-Unique
için aşağıdaki diğer adları içerir:
- Tüm platformlar:
gu
Daha fazla bilgi için bkz. about_Aliases.
Listeyi sıralamak için Sort-Object
kullanın. Listedeki benzersiz öğeleri bulmak için Sort-Object
parametresini de kullanabilirsiniz.