Örneklerle PowerShell Sıralama Nesnesini Öğrenme


Verileri sıralamak zorlayıcı bir görev olmamalıdır. Verileri sıralamanın etkili bir yolunu arıyorsanız PowerShell Sort-Object cmdlet'i size yardımcı olmak için burada!

Bu öğreticide sayılar, dizeler veya nesneler olsun verileri sıralamak için PowerShell Sort-Object cmdlet'ini nasıl kullanacağınızı öğreneceksiniz.

Verilerinizi sürekli gözden geçirme zahmetinden kurtulun ve bunları PowerShell'de verimli bir şekilde sıralayın!

Önkoşullar

Bu eğitimin uygulamalı gösterimlerle birlikte takip edilebilmesi için PowerShell 5,0 veya sonraki bir sürümünün yüklü olduğu bir makineniz olduğundan emin olun. Bu eğitimde PowerShell 7 yüklü Windows 10 kullanılmaktadır.

PowerShell Sort-Object cmdlet'iyle Verileri Sıralama

Gereksinimlerinize bağlı olarak verileri bir veya daha fazla özelliğe göre birçok şekilde sıralayabilirsiniz. Sort-Object cmdlet'i, yapılandırılmış bilgileri analiz etmeyi ve bunlarla çalışmayı kolaylaştırmak için verileri örneğin artan veya azalan düzende sıralamanıza olanak tanır.

Sort-Object cmdlet'inin temel sözdizimi aşağıdaki gibidir:

  • - Bir dizi, liste veya diğer veri türleri gibi sıralanacak verilerin toplanmasını ifade eder.
  • <-Parameter> - Sıralamanın nasıl gerçekleştirileceğini özelleştirmenize olanak tanıyan, sıralama kriterlerini belirleyen isteğe bağlı bir parametre.
<Object-to-Sort>|Sort-Object <-Parameter>

Verileri artan ve azalan düzende nasıl sıralayabileceğinizi görmek için:

1. PowerShell'i açın ve çıktı sağlamayan ancak $numbers değişkeninde rastgele tamsayı sayıların bir listesini tanımlayan aşağıdaki komutu çalıştırın.

$numbers = 4, 2, 3, 1, 5

? PowerShell nesne yönelimli bir dil ve kabuk olduğundan PowerShell'de yalnızca sayılar ve dizelerle değil, nesnelerle de çalıştığınızı unutmayın.

2. Daha sonra, $numbers'da tanımlanan sayıları sıralamak (Sort-Objects) ve görüntülemek (Write-Output) için aşağıdaki komutları uygulayın. değişken.

$sortedNumbers = $numbers | Sort-Object
Write-Output $sortedNumbers

Çıkış, parametreleri eklemeden sayıları artan sırada görüntüler.

3. Şimdi aynı komutları çalıştırın, ancak bu sefer sayıları azalan düzende sıralamak ve görüntülemek için -Descending parametresini ekleyin.

$sortedNumbers = $numbers | Sort-Object -Descending
Write-Output $sortedNumbers

Aşağıdakine benzer çıktı, sayıların azalan düzende sıralandığını gösterir.

Verileri Benzersiz Değerlere Göre Sıralama

Verileri artan ve azalan düzende sıralamak bir şeydir. Ancak verileri benzersiz değerlere göre sıralamanız gereken durumlar olabilir. Bu bağlamda “benzersiz”, bir veri kümesi içindeki farklı veya tekrarlanmayan değerleri ifade eder.

Verileri benzersiz değerlere göre sıralamak için:

Aşağıdakileri gerçekleştirmek için aşağıdaki komutları çalıştırın:

  • $numbers değişkeninde tamsayı sayılarından oluşan bir liste (yinelenenler dahil) tanımlayın.
  • Sayıları -Benzersiz değerlere göre -Azalan düzeninde sıralayın ve sonucu $sortedNumbers değişkeninde saklayın.

Benzersiz değerlere göre sıralama yaparken, verileri, her değerin sıralanan sonuçta yalnızca bir kez görüneceği şekilde düzenlersiniz ve yinelenenleri ortadan kaldırırsınız.

Bu komutlar çıktı sağlamaz ancak sıralanan verileri bir sonraki adımda doğrulayacaksınız.

$numbers = 4, 2, 3, 3, 1, 5, 2
$sortedNumbers = $numbers | Sort-Object -Unique -Descending

Şimdi sonucu doğrulamak amacıyla $sortedNumbers değişkeninin içeriğini çıkarmak için aşağıdaki Write-Output komutunu çalıştırın.

Write-Output $sortedNumbers

Aşağıda, tüm benzersiz değerler azalan düzende sıralanmıştır ve yinelenen değerler ortadan kaldırılmıştır.

Gördüğünüz gibi benzersiz değerlere göre sıralama, veri analizi verimliliğini artırır ve büyük veri kümeleriyle uğraşırken gereksiz bilgileri ortadan kaldırır.

Verileri Dizelere Göre Sıralama

Şu ana kadar sayısal değerlerin nasıl sıralanacağını gördünüz. Peki ya dizelerle çalışıyorsanız? Endişelenme. Sort-Object cmdlet'i, dize verilerini sıralama ölçütlerine göre belirli bir sıraya göre düzenlemenize olanak tanır.

Bu bağlamda bir dize, tek bir karakteri veya kelimeler, ifadeler veya diğer metinsel veriler gibi bir karakter dizisini ifade eder. PowerShell'de dizeler, metnin tek (') veya çift (" ) tırnak işaretleri içine alınmasıyla temsil edilir. ).

Bir dize dizisini varsayılan olarak artan (alfabetik) sıraya göre sıralamak için aşağıdaki komutları yürütün.

PowerShell'de dizelerin sıralanması, metin verilerinin istenen sırada düzenlenmesinde esneklik sağlayarak verimli veri manipülasyonu ve analizine olanak tanır.

# Define an array of strings
$strings = "a", "b", "c" 
# Sort the strings in ascending order by default (no parameters)
$sortedStrings = $strings | Sort-Object
# Display the sorted strings
Write-Output $sortedStrings

Şimdi aynı komutları çalıştırın, ancak bunları -Azalan düzenine göre sıralayın.

# Define an array of strings
$strings = "a", "b", "c" 
# Sort the strings in descending order
$sortedStrings = $strings | Sort-Object -Descending
# Display the sorted strings
Write-Output $sortedStrings

Bu sefer çıktıyı aşağıda gösterildiği gibi ters sırada göreceksiniz.

Verileri Özelliklere Göre Sıralama

Hiç şüphe yok ki dizeleri sıralamak işe yarar. Ancak genellikle verileri sıralarken daha spesifik olmanız gerekir. Dizeleri sıralamanın yanı sıra, neden nesneleri özelliklerine göre de sıralamıyorsunuz?

PowerShell nesneleriyle çalışırken, her nesne genellikle sıralama için kullanabileceğiniz bir veya daha fazla özelliğe sahiptir. Bu özellikler, ihtiyaçlarınıza göre sıralama kriterlerinizi tanımlamanıza olanak tanır.

Sisteminizde çalışan tüm işlemlerin (Get-Process) bir listesini almak ve bunları CPU kullanımına göre sıralamak için aşağıdaki komutları yürütün. -Descending parametresi, kaynağı en yoğun kullanan işlemlerin ilk sırada listelendiği sonucu görüntüler.

# Retrieve a collection of all running processes
$processes = Get-Process

# Sort the processes based on CPU usage in descending order
$sortedProcesses = $processes | Sort-Object -Property CPU -Descending

# Select and display the Name and CPU properties of each process
$sortedProcesses | Select-Object Name, CPU

Hash Tablolarını Sıralama

Nesneleri özelliklerine göre sıralamak, veri analiziyle çalışırken oyunun kurallarını değiştirir. Peki verileri hash tabloları gibi anahtar/değer çiftleri halinde düzenlemeye ne dersiniz?

Sort-Object cmdlet'i, veri sunumunu geliştirmek için karma tabloları sıralamanıza olanak tanır ve bilgi alımını basitleştirir.

Bir karma tablosunu bir anahtar/değer çiftleri dizisine dönüştürmek ve karma tablosunu anahtarlarına göre sıralamak için aşağıdaki kodu çalıştırın.

# Create a hash table with three key-value pairs
$hashTable = @{
    "C" = "Charlie"
    "A" = "Alpha"
    "B" = "Bravo"
}

# Sort the hash table by keys and store the sorted result in $sortedHashTable
$sortedHashTable = $hashTable.GetEnumerator() | Sort-Object -Property Name

# Iterate through each entry in the sorted hash table
foreach ($entry in $sortedHashTable) {
    # Output the key-value pair
    Write-Output "$($entry.Name): $($entry.Value)"
}

Anahtarlar karma tablosunu sıraladığından, çıktı aşağıdakine benzeyecektir; burada çıktının anahtar/değer çiftlerini belirli bir sırayla düzenlediğini ve görüntülediğini gözlemleyebilirsiniz.

Bu sıralama yöntemi daha iyi veri sunumu sağlar ve karma tablosundan bilgi almayı kolaylaştırır.

Çözüm

Bu eğitim boyunca benzersiz değerleri, dizeleri, sayıları, süreçleri ve hatta karma tabloları Sort-Object cmdlet'iyle nasıl sıralayacağınızı keşfettiniz. Veri sıralama, daha kapsamlı bir veri analizine giden yolu açmanıza olanak tanıyan görevlerden biridir ve PowerShell Sort-Object cmdlet'iyle doğru yoldasınız.

Bu yeni keşfedilen bilgiyle donanmış olarak, artık verilerinizin anlamlı bir şekilde organize edilmesini ve başkalarına güvenle gösterilmesini sağlayabilirsiniz.

Sıralama, PowerShell ve cmdlet'lerinin birçok değerli özelliğinden yalnızca biridir. Neden diğer cmdlet'ler hakkında bilgi edinerek becerilerinizi geliştirmiyorsunuz? Belki Tee-Object ile program günlükleri oluşturabilir veya Measure-Object ile nesne boyutlarını ölçebilirsiniz?

İlgili makaleler