PowerShell: Select-String'i Kullanın ve Belirli Deseni Hariç Tutun
Dizeler ve dosyalardaki belirli metni bulmak için PowerShell'deki Select-String cmdlet'ini kullanabilirsiniz.
Genellikle, bir dosyadaki belirli bir desen içermeyen tüm satırları seçmek için Select-String cmdlet'ini kullanmak isteyebilirsiniz.
Bunu yapmak için aşağıdaki yöntemleri kullanabilirsiniz:
Yöntem 1: Select-String Kullanın ve Belirli Bir Modeli Hariç Tut
Get-Content employees.txt | Select-String -pattern $my_pattern -NotMatch
Bu özel örnek, employees.txt adlı dosyadaki, $my_pattern değişkeninde belirtilen modeli içermeyen tüm satırları alacaktır.
2. Yöntem: Select-String'i Kullanın ve Birden Çok Belirli Deseni Hariç Tut
Get-Content employees.txt | Select-String -pattern $my_patterns -NotMatch
Bu özel örnek, employees.txt adlı dosyadaki, $my_patterns dizisinde belirtilen kalıplardan herhangi birini içermeyen 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: Select-String'i Kullanın ve Belirli Bir Modeli Hariç Tut
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 kimlik değerinin herhangi bir yerinde “A00” desenini içermeyen satırları almak 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 -NotMatchAşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:
Bunun yalnızca dosyadaki, satırın herhangi bir yerinde "A00" desenini içermeyen satırları döndürdüğüne dikkat edin.
Örnek 2: Select-String'i Kullanın ve Birden Çok Belirli Kalıbı Hariç Tut
Yalnızca employees.txt dosyasındaki, çalışan kimliği değerinin herhangi bir yerinde aşağıdaki kalıplardan herhangi birini içermeyen satırları almak 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 -NotMatchAşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:
Bunun yalnızca dosyadaki belirttiğimiz üç kalıptan birini içermeyen satırları döndürdüğüne dikkat edin.
Not: PowerShell'deki Select-String cmdlet'ine ilişkin tüm belgeleri burada bulabilirsiniz.


