PowerShell'de Bir Nesne Dizisi Nasıl Sıralanır
Bir dizi nesneyi sıralamak için PowerShell Sort-Object cmdlet'ini sağlar. Bu PowerShell eğitiminde, gerçek örneklerle PowerShell'deki nesne dizilerini sıralamak için bu cmdlet'in nasıl kullanılacağını keşfedeceğiz.
PowerShell'de bir dizi nesneyi sıralamak için sıralama yapılacak özellik adlarını belirten Sort-Object cmdlet'ini kullanın. Örneğin, $arrayOfObjects | Sort-Object -Property PropertyName, diziyi 'PropertyName'e göre sıralar. Birden fazla özelliğe göre hem artan hem de azalan düzende sıralama yapabilirsiniz.
PowerShell'deki Nesneler ve Diziler Nedir?
Öncelikle PowerShell'deki nesneleri ve dizileri anlayalım. PowerShell'de her şey bir nesnedir. Nesne, verileri (özellikler) ve eylemleri (yöntemleri) saklayan bir veri yapısıdır. Dizi, aynı türde veya farklı türde olabilen nesnelerin bir koleksiyonudur.
PowerShell Sıralama Nesnesi Cmdlet'i
Sort-Object cmdlet'i PowerShell'de sıralamaya yönelik birincil araçtır. Nesneleri bir veya daha fazla özellik değerine göre artan veya azalan sırada sıralar.
Temel Sıralama
Sort-Object ile sıralamanın en basit şekli PowerShell'deki tek bir özelliğe göre yapılır. İşte bir örnek:
$people = @(
[PSCustomObject]@{Name='Alice'; Age=25},
[PSCustomObject]@{Name='Bob'; Age=30},
[PSCustomObject]@{Name='Charlie'; Age=22}
)
$sortedPeople = $people | Sort-Object -Property Age
$sortedPeople
Yukarıdaki komut dosyası, her biri adı ve yaşı olan bir kişiyi temsil eden bir dizi özel nesne oluşturur. Sort-Object'i kullanarak diziyi Age özelliğine göre sıralarız. Varsayılan olarak sıralama artan sıradadır.
Çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:
Azalan Düzende Sıralama
PowerShell'de bir dizi nesneyi azalan düzende sıralamak için -Azalan anahtarını kullanın:
$sortedPeopleDescending = $people | Sort-Object -Property Age -Descending
$sortedPeopleDescendingBirden Çok Özelliklere Göre Sıralama
Ayrıca -Property parametresine virgülle ayrılmış bir liste ileterek birden fazla özelliğe göre sıralama yapabilirsiniz.
Burada PowerShell'deki nesnelerin birden çok parametreye göre sıralandığı bir dizi örneği verilmiştir.
$sortedPeopleMultiple = $people | Sort-Object -Property Age, Name
$sortedPeopleMultipleBu, insanları önce yaşa göre, ardından her yaş grubundaki isme göre sıralayacaktır.
Komut Dosyası Bloklarıyla Özel Sıralama
Daha karmaşık sıralama kuralları için komut dosyası bloklarını kullanabilirsiniz. Bir komut dosyası bloğu, sıralama için bir ifade belirtmenize olanak tanır:
$sortedPeopleScriptBlock = $people | Sort-Object -Property { $_.Name.Length }
$sortedPeopleScriptBlockBu, insanları adlarının uzunluğuna göre sıralayacaktır.
Gelişmiş Sıralama Teknikleri
Büyük/Küçük Harfe Duyarsız Sıralama
PowerShell'in sıralaması varsayılan olarak büyük/küçük harfe duyarlıdır. Büyük/küçük harfe duyarlı olmayan bir sıralama gerçekleştirmek için bir komut dosyası bloğunu ve ToLower() veya ToUpper() yöntemlerini kullanabilirsiniz:
$sortedPeopleCaseInsensitive = $people | Sort-Object -Property { $_.Name.ToLower() }
$sortedPeopleCaseInsensitiveÖzel Nesneler ve Hashtable'larla Sıralama
Bazen doğrudan erişilemeyen veya mevcut olmayan bir özelliğe göre sıralama yapmanız gerekebilir. Bu gibi durumlarda hashtable kullanarak anında özel bir özellik oluşturabilirsiniz:
$sortedPeopleCustomProperty = $people | Sort-Object -Property @{Expression={$_.Name.Length}; Ascending=$true}
$sortedPeopleCustomPropertyBu, komut dosyası bloğu örneğine benzer şekilde kişileri adlarının uzunluğuna göre sıralar, ancak daha ayrıntılıdır ve özellik başına sıralamanın yönünü belirlemek gibi ek seçeneklere izin verir.
- Sıralama yaparken, sıralamada kullandığınız özelliklerin dizideki tüm nesnelerde mevcut olduğundan daima emin olun.
Sort-Object'in yeni bir sıralanmış dizi oluşturduğunu unutmayın; orijinal diziyi yerinde sıralamaz.- Nesnelerinizde bulunan özellikleri keşfetmek için
Get-Membercmdlet'ini kullanın; bu, neye göre sıralama yapabileceğinizi anlamanıza yardımcı olabilir.
Çözüm
PowerShell'deki nesne dizilerini sıralamak Sort-Object cmdlet'iyle basittir. İster tek bir özelliğe göre, ister birden çok özelliğe göre sıralama yapıyor olun, ister karmaşık ifadeler kullanıyor olun, Sort-Object, veri düzenleme görevleriniz için gereken esnekliği sağlar.
Bu PowerShell eğitiminde, sort-object yöntemini kullanarak PowerShell'de bir dizi nesnenin nasıl sıralanacağını açıkladım.
