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” ในไดเร็กทอรีปัจจุบันนี้


