ค้นหาเว็บไซต์

PowerShell: ใช้ Select-String เพื่อค้นหาหลายรูปแบบ


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้ใน PowerShell เพื่อใช้ Select-String cmdlet เพื่อค้นหาหลายรูปแบบในหลายไฟล์:

Get-ChildItem -recurse | Select-String Spurs, Mavs, Celtics

ตัวอย่างนี้ส่งคืนบรรทัดจากแต่ละไฟล์ในไดเร็กทอรีปัจจุบันที่มีสตริงใดสตริงหนึ่งต่อไปนี้ที่ใดก็ได้ในบรรทัด:

  • สเปอร์ส
  • แมฟ
  • เซลติกส์

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: ใช้ Select-String เพื่อค้นหาหลายรูปแบบใน PowerShell

สมมติว่าไดเรกทอรีปัจจุบันของเราอยู่ที่เส้นทางต่อไปนี้:

c:\users\bobbi\data1

เราสามารถพิมพ์ Dir เพื่อดูไฟล์ทั้งหมดในไดเร็กทอรีนี้:

ไดเร็กทอรีประกอบด้วยไฟล์ห้าไฟล์ที่มีข้อมูลต่างๆ เกี่ยวกับผู้เล่นบาสเกตบอล

สมมติว่าเราต้องการส่งคืนบรรทัดทั้งหมดในไฟล์เหล่านี้ที่มีสตริง "Spurs", "Mavs" หรือ "Celtics" ที่ใดก็ได้ในบรรทัด

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อดำเนินการดังกล่าว:

Get-ChildItem -recurse | Select-String Spurs, Mavs, Celtics

ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:

ผลลัพธ์จะแสดงข้อมูลเกี่ยวกับแต่ละบรรทัดที่มี "สเปอร์ส", "แมฟส์" หรือ "เซลติกส์" ที่ใดก็ได้ในบรรทัด

ตัวอย่างเช่น เราเห็น:

  • ไฟล์ conferences.txt มี “Mavs” ในบรรทัด 1 ของไฟล์
  • ไฟล์ conferences.txt มี “Spurs” ในบรรทัด 2 ของไฟล์
  • ไฟล์ conferences.txt มี “Celtics” ในบรรทัด 3 ของไฟล์

และอื่นๆ

หากเราต้องการ เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อสร้างเอาต์พุตเดียวกันแต่อยู่ในรูปแบบที่อ่านง่ายขึ้น:

Get-ChildItem -recurse |
Select-String Spurs, Mavs, Celtics |
select LineNumber, Line, Filename

ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:

ผลลัพธ์จะแสดงหมายเลขบรรทัด บรรทัดจริง และชื่อไฟล์สำหรับแต่ละบรรทัดที่มี “Spurs”, “Mavs” หรือ “Celtics” ในไดเร็กทอรีปัจจุบันนี้

บทความที่เกี่ยวข้อง