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_pattern

Aş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_patterns

Aş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.

İlgili makaleler