Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

Grep ใน PowerShell โดยใช้ Select-String Cmdlet

ใน Linux/Unix grep คำสั่งใช้เพื่อค้นหาข้อความ (สตริง) หรือข้อผิดพลาดในไฟล์บันทึก Grep ช่วยให้คุณค้นหา/เลือกข้อมูลใด ๆ ในผลลัพธ์ของคำสั่งอื่น:

command | grep search

ใน PowerShell คุณสามารถใช้ Select-String cmdlet เพื่อค้นหาสตริงข้อความในไฟล์

ตัวอย่างเช่น คำสั่งต่อไปนี้แสดงบรรทัดทั้งหมดที่มี ERROR ในไฟล์ข้อความหรือ stdout:

Select-String -Path c:\tmp\makeapp_sxtracesxs.txt -Pattern "ERROR"

Grep ใน PowerShell โดยใช้ Select-String Cmdlet

คำสั่งได้แสดงจำนวนบรรทัดที่มีข้อความที่คุณกำลังค้นหาและค่าของข้อความนั้น

หากคุณต้องการค้นหาสตริงใน TXT . ทั้งหมด ในไดเร็กทอรีเฉพาะ ให้รันคำสั่งด้านล่าง:

Select-String -Path c:\tmp\*.txt -Pattern "ERROR"

คุณสามารถใช้คำสั่งนี้ได้หากต้องการค้นหาไฟล์ทั้งหมดในโฟลเดอร์ ตัวอย่างเช่น คำสั่งนี้อาจมีประโยชน์สำหรับการค้นหาการขนส่ง (SMTP) และบันทึกการติดตามข้อความบน Exchange Server

การใช้ตัวเลือก ไม่รวม และ รวม คุณสามารถรวมหรือแยกไฟล์บางไฟล์สำหรับการค้นหาได้ คำสั่งต่อไปนี้จะค้นหาไฟล์ TXT และ LOG ทั้งหมดที่ไม่มี copy ในชื่อ:
$path = "c:\tmp\*"
Select-String -Path $path -Pattern "ERROR" -Include "*.txt","*.log" -Exclude "*copy*"

ตัวอย่างก่อนหน้านี้ค้นหาข้อความในไดเร็กทอรีที่ระบุเท่านั้น หากต้องการค้นหาไฟล์ในไดเร็กทอรีที่ซ้อนกันแบบวนซ้ำ ให้ใช้ Get-ChildItem cmdlet:

Get-ChildItem -Path 'c:\tmp\' -Recurse -include "*.mp3","*.avi" -ErrorAction SilentlyContinue | Select-String -SimpleMatch "ERROR","WARNING"