Aracılığıyla paylaş


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-Uniquegö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-Objectgeç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-UniqueProcessName değerlerini dize olarak işlemesini söyler. Bu parametre olmadan, Get-UniqueProcessName 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-Uniqueiç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-Uniquegiriş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

PSObject

Herhangi bir nesne türünü bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

PSObject

Bu cmdlet, giriş nesnelerini yineleme olmadan döndürür.

Notlar

PowerShell, Get-Uniqueiç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-Objectkullanın. Listedeki benzersiz öğeleri bulmak için Sort-Object parametresini de kullanabilirsiniz.