PowerShell Kullanarak Dosyadaki Kelimeler Nasıl Sayılır?


Bir dosyadaki kelime sayısını saymanız mı gerekiyor? Bu eğiticiye göz atın. Bu pratik eğitimde, PowerShell kullanarak bir dosyadaki sözcüklerin nasıl sayılacağını açıklıyorum. Çeşitli yöntemleri örneklerle inceleyeceğiz.

PowerShell kullanarak bir dosyadaki kelimeleri saymak için Measure-Object cmdlet'ini kullanabilirsiniz. Öncelikle, Get-Content ile dosya içeriğini alın, ardından -Word parametresiyle Measure-Object'e aktarın. Örneğin, İçerik Getir "C:\Klasörüm\dosya.txt" komutu | Measure-Object -Word, belirtilen dosyadaki kelime sayısını döndürür.

PowerShell Kullanarak Dosyadaki Kelimeleri Sayma

PowerShell, bir dosyadaki kelimeleri saymak için farklı yöntemler sağlar. Her yöntemi örneklerle kontrol edelim.

Yöntem 1: Measure-Object'i Kullanma

PowerShell'de süper kolay bir yöntem daha var. PowerShell'deki bir dosyadaki kelimeleri saymak için Measure-Object cmdlet'ini kullanabilirsiniz.

İşte bir örnek.

# Define the path to the file
$filePath = "C:\MyFolder\example.txt"

# Read the content of the file and count the words
$wordCount = Get-Content $filePath | Measure-Object -Word

# Display the word count
$wordCount.Words

Bu komut dosyasında, Get-Content belirtilen yolda bulunan dosyanın içeriğini okur ve Measure-Object -Word kelimeleri sayar. Sonuç, $wordCount değişkeninde saklanır ve daha sonra görüntülenir.

Yukarıdaki PowerShell betiğini VS kod düzenleyicisini kullanarak çalıştırdıktan sonra aşağıdaki ekran görüntüsündeki çıktıyı görebilirsiniz.

Yöntem 2: Get-Content ve String Yöntemlerini Kullanarak Kelimeleri Sayma

PowerShell kullanarak bir dosyadaki kelimeleri saymanın en kolay yolu, dosya içeriğini okumak ve ardından içeriği kelimelere bölmektir. Bunu nasıl yapabileceğiniz aşağıda açıklanmıştır:

  1. Dosya içeriğini okuyun: Dosyanın içeriğini okumak için Get-Content cmdlet'ini kullanın.
  2. İçeriği kelimelere ayırın: İçeriği boşluklara göre bölmek için -split operatörünü kullanın.
  3. Kelimeleri sayın: Kelime sayısını öğrenmek için .Length özelliğini kullanın.

İşte bir dosyada sunulan sözcük sayısını sayacak eksiksiz bir PowerShell betiği.

# Path to the text file
$filePath = "C:\MyFolder\example.txt"

# Read the content of the file
$content = Get-Content -Path $filePath -Raw

# Split the content into words
$words = $content -split '\s+'

# Count the number of words
$wordCount = $words.Length

# Output the word count
Write-Output "The file contains $wordCount words."

Burada yukarıdaki PowerShell betiğini VS kodunu kullanarak çalıştırdığımı görebilirsiniz ve bana aşağıdaki ekran görüntüsündeki gibi çıktı verdi. Bana tam sayıyı gösterdi.

Yöntem 3: Normal İfadeleri Kullanma

PowerShell'de bir dosyadaki kelimeleri saymak için kullanabileceğiniz bir diğer yöntem ise dosya içeriğindeki kelimeleri eşleştirmek için normal ifadeler kullanmaktır. Bunu nasıl yapacağınız:

  1. Dosya içeriğini okuyun: Get-Content'i -Raw parametresiyle kullanın.
  2. Regex kullanarak kelimeleri eşleştirin: Tüm kelime eşleşmelerini bulmak için [regex]::Matches()'i kullanın.
  3. Eşleşmeleri sayın: Kelime sayısını almak için .Count özelliğini kullanın.

İşte PowerShell komut dosyası yönteminin tamamı.

# Path to the text file
$filePath = "C:\MyFolder\example.txt"

# Read the content of the file
$content = Get-Content -Path $filePath -Raw

# Define the regex pattern for matching words
$pattern = '\b\w+\b'

# Find all matches
$matches = [regex]::Matches($content, $pattern)

# Count the number of matches
$wordCount = $matches.Count

# Output the word count
Write-Output "The file contains $wordCount words."

Komut dosyasının tamamını Visual Studio kodunu kullanarak yürüttüm ve çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz.

Yöntem 4: Özel İşlev Kullanma

Özel bir işlev oluşturabilir ve onu her yerde yeniden kullanabilirsiniz. Bu işlev, dosya yolunu argüman olarak ileterek herhangi bir dosyadaki kelimeleri sayabilir.

Böyle bir işlevi nasıl oluşturabileceğiniz ve kullanabileceğiniz aşağıda açıklanmıştır:

function Get-WordCount {
    param (
        [string]$filePath
    )

    # Read the content of the file
    $content = Get-Content -Path $filePath -Raw

    # Split the content into words
    $words = $content -split '\s+'

    # Return the word count
    return $words.Length
}

# Example usage
$filePath = "C:\MyFolder\Example.txt"
$wordCount = Get-WordCount -filePath $filePath

# Output the word count
Write-Output "The file contains $wordCount words."

Yukarıdaki yöntemi her yerde yeniden kullanabilirsiniz.

PowerShell kullanarak bir dosyadaki Kelimeleri, Satırları ve Karakterleri sayın

Sadece kelimeleri değil satırları ve karakterleri de saymak isteyebileceğiniz zamanlar olacaktır. Aşağıda PowerShell kullanarak bir dosyadaki kelimeleri, satırları ve karakterleri saymaya yönelik eksiksiz bir komut dosyası bulunmaktadır.

# Define the path to the file
$filePath = "C:\MyFolder\example.txt"

# Read the content of the file and count words, lines, and characters
$stats = Get-Content $filePath | Measure-Object -Word -Line -Character

# Display the counts
"Words: $($stats.Words)"
"Lines: $($stats.Lines)"
"Characters: $($stats.Characters)"

Bu komut dosyası, -Line ve -Character parametrelerini Measure-Object'e ekleyerek öncekinin yeteneklerini genişletir ve bir sayı almanızı sağlar. çizgiler, karakterler ve kelimeler.

Betiği VS kod düzenleyicisini kullanarak çalıştırdıktan sonra verdiği çıktının ekran görüntüsü aşağıdadır.

PowerShell Kullanarak Birden Çok Dosyadaki Kelimeleri Sayma

Bazen birden fazla dosyadaki kelimeleri saymanız gerekebilir ve bunu PowerShell'de yapmak da çok kolaydır.

İşte PowerShell kullanarak bir klasördeki tüm metin dosyalarındaki kelimeleri sayacak eksiksiz bir komut dosyası.

# Define the path to the directory containing the files
$directoryPath = "C:\MyFolder"

# Get all text files in the directory
$files = Get-ChildItem $directoryPath -Filter *.txt

# Loop through each file and count the words
foreach ($file in $files) {
    $content = Get-Content $file.FullName
    $wordCount = ($content | Measure-Object -Word).Words
    "$($file.Name) has $wordCount words"
}

Bu komut dosyası, belirli bir dizindeki tüm .txt dosyalarını listeler ve her dosyadaki kelimeleri sayar. Son olarak, çıktı olarak dosya adını ve sözcük sayısını gösterecektir.

PowerShell kullanarak bir dosyadaki belirli kelimeleri sayın

Bazen bir dosyadaki belirli bir kelimeyi saymanız gerekebilir.

PowerShell kullanarak bir dosyadaki belirli kelimeleri saymak için Select-String cmdlet'ini kullanabilirsiniz. Bu cmdlet, Unix/Linux'taki grep komutuna benzer ve normal ifade eşleştirmeyi kullanarak giriş dizeleri ve dosyalardaki metin modellerini aramak için kullanılabilir.

Belirli bir kelimenin bir dosyada geçtiği yerleri nasıl sayabileceğinize dair adım adım açıklama aşağıda verilmiştir:

  1. Select-String cmdlet'i, belirli kalıpları bulmak için metin ve dosyalarda arama yapmanıza olanak tanır. Belirli bir kelimenin geçtiği yeri saymak istediğinizde bu cmdlet'i kullanır ve aradığınız modeli (kelimeyi) belirtirsiniz.
  2. Dosyanın içeriğini Select-String'e aktarmadan önce okumak için genellikle Get-Content'i kullanırsınız veya doğrudan Select-String'i kullanabilirsiniz. dosya.
  3. Select-String eşleşmeleri bulduktan sonra, Matches özelliğine erişerek veya sonuçları doğrudan Measure-Object cmdlet'ine aktararak bunları sayabilirsiniz. .

İşte "example.txt" adlı bir dosyada "PowerShell" kelimesinin kaç kez göründüğünü sayan basit bir PowerShell betiği:

# Define the path to the file and the specific word
$filePath = "C:\MyFolder\example.txt"
$wordToCount = "PowerShell"

# Count the occurrences of the word
$wordCount = (Select-String -Path $filePath -Pattern "\b$wordToCount\b" -AllMatches).Matches.Count

# Display the count
"Number of times the word '$wordToCount' appears: $wordCount"

Bu komut dosyasında:

  • "\b$wordToCount\b" "PowerShell" sözcüğünü tam sözcük olarak eşleştiren normal bir ifadedir (\b bir sözcük sınırını belirtir).
  • -AllMatches, Select-String'e dosyadaki her eşleşmeyi bulmasını söyler.
  • .Matches.Count, bulunan tüm eşleşmelerin sayısını alır.

Bu yaklaşım, kısmi eşleşmeler yerine yalnızca tam kelime eşleşmelerini saymanızı sağlar (örneğin, "PowerShell" sayılır, ancak "PowerShellScript" sayılmaz).

Komut dosyasını çalıştırdıktan sonra çıktıyı aşağıdaki ekran görüntüsünde açıkça görebilirsiniz.

PowerShell kullanarak bir dosyadaki benzersiz kelimeleri sayın

Bir dosyadan benzersiz sözcükler almanız gereken zamanlar olacaktır ve PowerShell bunun için en iyi seçenektir.

PowerShell kullanarak bir dosyadaki benzersiz sözcükleri saymak, birkaç cmdlet'i birleştirerek gerçekleştirilebilir. Dosyanın içeriğini okumayı, metni tek tek kelimelere ayırmayı ve ardından benzersiz kelimeleri filtreleyip saymak için Group-Object ve Sort-Object cmdlet'lerinin bir kombinasyonunu kullanmayı içerir .

İşte adım adım bir açıklama ve ardından tam bir komut dosyası:

  • Dosyayı Oku: Dosyanın içeriğini okumak için Get-Content'i kullanın.
  • İçeriği Kelimelere Böl: İçeriği tek tek kelimelere bölün. Bu, kelime olmayan karakterlerin yerine boşluk konularak ve ardından -split operatörü kullanılarak yapılabilir.
  • Kelimeleri Gruplandırın ve Sıralayın: Aynı kelimeleri bir arada gruplamak için Group-Object'i ve gerekirse bunları sıralamak için Sort-Object'i kullanın.
  • Benzersiz Kelimeleri Say: Benzersiz grupların sayısı, benzersiz kelimelerin sayısına karşılık gelir.

İşte bir dosyayı okuyan ve içerdiği benzersiz sözcük sayısını sayan bir PowerShell betiği:

# Define the path to the file
$filePath = "C:\MyFolder\example.txt"

# Read the file and split the content into words
$words = Get-Content -Path $filePath -Raw | ForEach-Object { ($_ -replace '[^\w\s]', ' ') -split '\s+' }

# Group the words, select unique ones, and count them
$uniqueWords = $words | Group-Object | Measure-Object

# Display the count of unique words
"Number of unique words: $($uniqueWords.Count)"

Bu komut dosyasında:

  • Get-Content -Path $filePath -Raw tüm dosya içeriğini tek bir dize olarak okur.
  • -replace '[^\w\s]', ' ' kelime ve boşluk olmayan karakterleri boşlukla değiştirir.
  • -split '\s+' dizeyi bir veya daha fazla boşluk karakterine göre bir kelime dizisine böler.
  • Group-Object kelimeleri gruplayarak kopyaları etkili bir şekilde filtreler.
  • Measure-Object benzersiz grupların sayısını sayar.

Yukarıdaki betiği VS kodunu kullanarak çalıştırdıktan sonra, bana belirtilen dosyanın benzersiz kelime sayısını verdi, aşağıdaki ekran görüntüsünde görebilirsiniz:

Çözüm

Umarım artık PowerShell kullanarak bir dosyadaki sözcük sayısını nasıl sayacağınız hakkında bir fikriniz vardır. Ayrıca şunu da açıkladım:

  • PowerShell kullanarak bir dosyadaki Kelimeleri, Satırları ve Karakterleri sayın
  • PowerShell Kullanarak Birden Çok Dosyadaki Kelimeler Nasıl Sayılır
  • PowerShell kullanarak bir dosyadaki belirli kelimeleri sayın
  • PowerShell kullanarak bir dosyadaki benzersiz kelimeleri sayma

İlgili makaleler