PowerShell: Get-Content'i Filtreyle Kullanma
Belirli bir dosyadan içeriği almak için PowerShell'deki Get-Content cmdlet'ini kullanabilirsiniz.
Yalnızca belirli kalıpları içeren bir dosyadaki satırları görüntülemek için genellikle Get-Content cmdlet'inden sonuçları filtrelemek isteyebilirsiniz.
Bunu yapmak için aşağıdaki yöntemleri kullanabilirsiniz:
Yöntem 1: Get-Content'i kullanın ve Tek Dizeye Göre Filtreleyin
Get-Content employees.txt | Select-String -pattern $my_pattern
Bu özel örnek, employees.txt adlı dosyadaki $my_pattern değişkeninde belirtilen modeli içeren tüm satırları alacaktır.
2. Yöntem: Get-Content Kullanın ve Birden Çok Dizeye Göre Filtreleyin
Get-Content employees.txt | Select-String -pattern $my_patterns
Bu özel örnek, employees.txt adlı dosyadaki $my_patterns dizisinde belirtilen kalıplardan herhangi birini içeren tüm satırları alacaktır.
Aşağıdaki örnek, bu yöntemlerin her birinin pratikte nasıl kullanılacağını göstermektedir.
Örnek 1: Get-Content Kullanımı ve Tek Dizeye Göre Filtreleme
Mevcut dizinimizde, bir şirketteki çeşitli çalışanların kimlik değerlerini içeren employees.txt adında bir dosyamız olduğunu varsayalım.
Bu dosyadaki tüm satırları görüntülemek için Get-Content cmdlet'ini kullanabiliriz:
Dosyada yalnızca çalışan kimliği değerinin bir yerinde "A00" modelini içeren satırları filtrelemek istediğimizi varsayalım.
Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:
$my_pattern = "A00"
Get-Content employees.txt | Select-String -pattern $my_patternAşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:
Bunun yalnızca satırın herhangi bir yerinde “A00” desenini içeren dosyadaki satırları döndürdüğüne dikkat edin.
Boş satır olmadan yalnızca içeriği döndürmek istiyorsanız Satır özelliğine göre filtre uygulayabilirsiniz:
$my_pattern = "A00"
Get-Content employees.txt | Select-String -pattern $my_pattern | % { $_.Line }Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:
Bu, dosyadan yalnızca “A00” desenini içeren satırları döndürür ve içerikten önce veya sonra boş satırlar getirmez.
Örnek 2: Get-Content'i Kullanma ve Birden Çok Dizeye Göre Filtreleme
employees.txt dosyasındaki, çalışan kimliği değerinin herhangi bir yerinde aşağıdaki kalıplardan herhangi birini içeren satırları filtrelemek istediğimizi varsayalım:
- A00
- B14
- C00
Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:
$my_patterns = @("A00", "B14", "C00")
Get-Content employees.txt | Select-String -pattern $my_patternsAşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:
Bunun yalnızca belirttiğimiz üç kalıptan birini içeren dosyadaki satırları döndürdüğüne dikkat edin.
Not: PowerShell'deki Get-Content cmdlet'inin tüm belgelerini burada bulabilirsiniz.



