Trong Linux/Unix, lệnh grep được dùng để tìm một văn bản (chuỗi) hoặc lỗi trong file log. Grep cho phép bạn tìm/chọn bất kỳ dữ liệu nào trong đầu ra của lệnh khác:
command | grep search
Trong PowerShell, bạn có thể sử dụng cmdlet Select-String để tìm chuỗi văn bản trong file.
Ví dụ, lệnh sau hiển thị tất cả các dòng chứa ERROR trong file văn bản hoặc stdout:
Select-String -Path c:\tmp\makeapp_sxtracesxs.txt -Pattern "ERROR"

Lệnh đã hiển thị số dòng chứa văn bản bạn tìm kiếm và giá trị của chúng.
Nếu bạn muốn tìm chuỗi trong tất cả file TXT trong một thư mục cụ thể, hãy chạy lệnh dưới đây:
Select-String -Path c:\tmp\*.txt -Pattern "ERROR"
Bạn có thể dùng lệnh này nếu muốn tìm kiếm qua tất cả file trong một thư mục. Ví dụ, lệnh này có thể hữu ích để tìm kiếm log truyền tải (SMTP) và theo dõi tin nhắn trên Exchange Server.
Sử dụng tùy chọn Exclude và Include, bạn có thể bao gồm hoặc loại trừ một số file nhất định cho tìm kiếm. Lệnh sau sẽ tìm kiếm qua tất cả file TXT và LOG không chứa copy trong tên của chúng:
$path = "c:\tmp\*"
Select-String -Path $path -Pattern "ERROR" -Include "*.txt","*.log" -Exclude "*copy*"
Ví dụ trước chỉ tìm kiếm văn bản trong thư mục được chỉ định. Để tìm kiếm file trong các thư mục lồng nhau đệ quy, hãy sử dụng cmdlet Get-ChildItem:
Get-ChildItem -Path 'c:\tmp\' -Recurse -include "*.mp3","*.avi" -ErrorAction SilentlyContinue | Select-String -SimpleMatch "ERROR","WARNING"