Bagaimana cara mengambil Teks Pencarian Dari PowerShell

grep adalah utilitas pencarian teks yang kuat di Linux, tetapi tidak tersedia di Windows. Meskipun ada port dan solusi pihak ketiga, PowerShell menawarkan ekuivalen bawaan untuk grep yang akan melakukan pekerjaan yang sama di skrip Anda.

Menggunakan findstr untuk mengambil Pencarian Di PowerShell

Ada beberapa alat pencarian yang berbeda di PowerShell, masing-masing dengan kekuatannya sendiri. Yang paling sederhana adalah findstr, yang merupakan executable windows asli. Ini berfungsi dengan baik untuk menggantikan grep untuk operasi pencarian baris perintah sederhana. Misalnya, Anda dapat menyalurkan output dari ls di sini untuk menemukan kecocokan.

ls | findstr "foo"

Anda juga dapat mencari beberapa kata sekaligus, menggunakan wildcard untuk mencocokkan apa pun, dan menggunakan /R tandai untuk meneruskan ekspresi reguler utama.

ls | findstr /R ba[a-z]\.txt

Namun, jika Anda ingin secara eksplisit mencari dengan spasi, Anda harus menggunakan /C: bendera:

ls | findstr /C:"foo"

Jika Anda terbiasa dengan baris perintah Linux, dan tidak ingin mengingat perintah baru, Anda dapat mengonfigurasi “grep” menjadi alias untuk findstryang akan membiarkan Anda mempertahankan memori otot Anda.

new-alias grep findstr

Menggunakan Select-String untuk mengambil Pencarian di PowerShell

Metode asli lain yang ditawarkan oleh PowerShell adalah Select-String cmdlet, yang melakukan banyak hal yang sama seperti findstrtetapi cmdlet PowerShell alih-alih Windows yang dapat dieksekusi.

Ini berarti ini akan bekerja lebih baik dengan skrip PowerShell, dan yang lebih penting mengembalikan outputnya sebagai objek, yang dapat dicetak oleh PowerShell. Ini juga lebih mudah digunakan pada baris perintah, karena penyelesaian tab PowerShell akan berfungsi di sini.

Ini bekerja seperti findstrdan juga dapat mengambil wildcard dan ekspresi reguler.

ls | Select-String foo
ls | Select-String -Pattern <regexPattern>

Anda dapat menggunakannya Select-String untuk mengambil teks di dalam file, dengan meneruskannya sebagai -Path argumen. Anda juga dapat menggunakannya dengan input yang diteruskan dari cmdlet lain seperti Get-Content.

Select-String -Path ".\foo.txt" -Pattern ba.*

Jika Anda ingin menggunakannya di baris perintah, Anda juga dapat menggunakan alias “grep” untuk akses cepat.

Leave a Comment

Your email address will not be published. Required fields are marked *