PowerShell'deki Diziden Yinelenenleri Kaldırma [3 Yol]
Select-Object'i -Unique Parametresiyle Kullanma
PowerShell'deki dizideki kopyaları kaldırmak için:
- Yinelenen değerlere sahip bir dizi oluşturmak için dizi operatörünü kullanın.
- Önceki adımda oluşturduğumuz diziden benzersiz değerler seçmek için
Select-Objectparametresini-Uniqueparametresiyle birlikte kullanın.
Select-Object'i -Unique Parameter ile kullanın:
$array = @(2,2,4,4,3,3,6,9,8,9,1,0)
$array = $array | Select-Object -Unique
$arrayÇIKTI:
2
4
3
6
9
8
1
0Bu kod için, yinelenen değerlere sahip bir dizi oluşturmak için dizi operatörünü (@()) kullandık ve atama operatörünü ($array) kullanarak diziyi $array değişkenine kaydettik. kod>=). PowerShell'de değişken adlarının önüne bir $ işareti konulduğunu unutmayın; örneğin, $VariableName.
Daha sonra, -Unique ile Select-Object cmdlet'ini (Windows PowerShell'de kullanılan bir komut olan command-let olarak telaffuz edilir) kullandık. Verilen diziden benzersiz değerleri seçmek için parametre. Nasıl? $array=$array | Select-Object -Unique komutunu kullanın ve anlayın.
Öncelikle giriş dizisini ($array) belirledik ve sonuçlarını Select-Object cmdlet'ine göndermek için dikey çizgiyi (|) kullandık. Burada önceki komutun sonuçlarını aşağıdaki komuta göndermek için kanal kullanıldı.
Daha sonra, Select-Object cmdlet'i nesnenin/nesne kümesinin verilen özelliklerini seçer; dizideki belirli bir dizindeki belirtilen nesneleri, belirli sayıda nesneyi ve benzersiz nesneleri seçebilir.
Verilen diziden benzersiz değerleri seçmek için bu cmdlet'i -Unique parametresiyle birlikte kullandık. Daha sonra orijinal diziyi güncellemek için atama operatörünü kullandık.
-Unique parametresinin büyük/küçük harfe duyarlı olduğunu, yani Hello anlamına geldiğini ve hello parametresinin benzersiz değerler olarak kabul edileceğini unutmayın. Dizideki string tipi elemanları içeren aşağıdaki örnekte görelim.
Select-Object'i -Unique Parameter ile kullanın:
$array = @("Hello", "hello", "Hi", "Greetings", "Hi")
$array = $array | Select -Unique
$arrayÇIKTI:
Hello
hello
Hi
GreetingsGördünüz mü, hem Hello hem de hello'yu aldık. Bunun nedeni, karakter büyük/küçük harf farkının, Select-Object cmdlet'iyle (takma adı Select olan) -Unique parametresi için benzersiz değerler olarak kabul edilmesidir. ).
Sort-Object'i -Unique Parametresiyle Kullanma
PowerShell'deki bir dizideki kopyaları kaldırmak için:
- Yinelenen değerlere sahip bir dizi oluşturmak için dizi operatörünü kullanın.
- İlk adımda oluşturduğumuz dizideki yinelenen değerleri kaldırmak için
Sort-Objectparametresini-Uniqueparametresiyle birlikte kullanın.
Sort-Object'i -Unique Parameter ile kullanın:
$array = @(2,2,4,4,3,3,6,9,8,9,1,0)
$array = $array | Sort-Object -Unique
$arrayÇIKTI:
0
1
2
3
4
6
8
9
Dizi operatörünü kullanarak dizi oluşturma, değişken bildirimi ve başlatma, atama operatörü, kanal işareti, benzersiz değerlerin seçilmesi ve Select-Object kullanırken cmdlet'in yürütme akışını zaten öğrendik.
Bu kod örneği Select-Object'i öğrenirken kullandığımıza benzer; burada, nesne özelliği değerlerine bağlı olarak nesneleri azalan veya artan düzende sıralayabilen Sort-Object cmdlet'ini kullandık. Bu ne anlama gelir?
Bu, Sort-Object ile sort özelliğini belirtmezsek, ilk giriş nesnesinin varsayılan sort özelliğini kullanacağı anlamına gelir. Giriş nesnesinin türü için varsayılan bir sıralama özelliği yoksa PowerShell'in nesneleri kendileri karşılaştıracağını unutmayın. Bununla ilgili daha fazlasını buradan okuyabilirsiniz
Burada, dize tipi dizi öğeleriyle çalışırken özellikler büyük/küçük harfe duyarlı veya büyük/küçük harfe duyarlı olarak sıralanacaktır. Nasıl? Aşağıdaki Sort-Object cmdlet'i ile -Unique parametresini kullanarak bunu anlayalım.
Sort-Object'i -Unique -CaseSensitive ile kullanın:
$array = @("Hello", "hello", "Hi", "Greetings", "Hi")
$array = $array | Sort-Object -Unique -CaseSensitive
$arrayÇIKTI:
Greetings
hello
Hello
HiYukarıdaki kod çerçevesi, -Unique parametresinin -CaseSensitive olması durumunda Hello ve hello'yu benzersiz değerler olarak değerlendireceğini gösterdi. parametre verilir. Ayrıca Sort-Object cmdlet'i kullanılarak öğeler ilk harfleri dikkate alınarak alfabetik sıraya göre sıralanacaktır.
Büyük/küçük harfe duyarlı olmayan sonuçlar istiyorsanız -CaseSensitive parametresini atlayın ve aşağıdaki komutu kullanın.
Sort-Object'i -Unique ile kullanın:
$array = @("Hello", "hello", "Hi", "Greetings", "Hi")
$array = $array | Sort-Object -Unique
$arrayÇIKTI:
Greetings
Hello
Hi
Ayrıca Sort-Object cmdlet'inin takma adı olan Sort'u da aşağıdaki gibi kullanabiliriz.
-Unique ile Sırala'yı kullanın:
$array = @("Hello", "hello", "Hi", "Greetings", "Hi")
$array = $array | Sort -Unique
$arrayÇIKTI:
Greetings
Hello
HiGet-Unique'i Sort-Object ile kullanma
PowerShell'deki bir dizideki kopyaları kaldırmak için:
- Yinelenen değerler içeren bir dizi oluşturmak için dizi operatörünü kullanın.
- Verilen diziyi sıralamak için
Sort-Object'i ve belirtilen diziden yinelenen değerleri kaldırmak içinGet-Unique'i kullanın.
Get-Unique'i Sort-Object ile kullanın:
$array = @(2,2,4,4,3,3,6,9,8,9,1,0)
$array = $array | Sort-Object | Get-Unique
$arrayÇIKTI:
0
1
2
3
4
6
8
9Önceki bölümde zaten Sort-Object hakkında bilgi edinmiştik. Burada, verilen diziden yinelenen değerleri kaldırmak için Get-Unique cmdlet'ini Sort-Object cmdlet'iyle birlikte kullandık.
Neden Get-Unique cmdlet'ini Sort-Object cmdlet'iyle birlikte kullanmamız gerektiğini merak ediyor olabilirsiniz. Bunun nedeni, dizi sıralanmışsa Get-Unique cmdlet'inin benzersiz değerleri seçmesidir. Peki $array=$array | komutu nasıl kullanılır? Sıralama-Nesne | Get-Unique yürütüldü mü?
Öncelikle giriş dizisini ($array) belirledik ve sonuçları, dikey çizgi işareti kullanılarak Sort-Object cmdlet'ine iletildi. Daha sonra Sort-Object cmdlet'i, giriş dizisini, $array'in varsayılan sıralama özelliği olan artan düzende sıraladı. Daha sonra sıralanan diziyi Get-Unique cmdlet'ine iletmek için başka bir kanal kullandık.
Artık Get-Unique cmdlet'i, sağlanan sıralanmış dizideki her öğeyi bir sonrakiyle karşılaştırdı, aynı değerleri kaldırdı ve her öğe için yalnızca bir örnek döndürdü. Son olarak, atama operatörü (=) kullanılarak $array'e sıralanan benzersiz değerler atandı.
Tıpkı -Unique parametresi gibi, Get-Unique da büyük/küçük harfe duyarlıdır, yani karakter büyük/küçük harf farkı olan dizeler benzersiz değerler olarak kabul edilecektir. Gösterim için aşağıdaki örneğe bakın.
Get-Unique'i Sort-Object ile kullanın:
$array = @("Hello", "hello", "Hi", "Greetings", "Hi")
$array = $array | Sort-Object | Get-Unique
$arrayÇIKTI:
Greetings
Hello
hello
HiBunların hepsi PowerShell'deki Array'deki kopyaların nasıl kaldırılacağıyla ilgili.