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

PowerShell: วิธีใช้รับเนื้อหาพร้อมตัวกรอง


คุณสามารถใช้ Get-Content cmdlet ใน PowerShell เพื่อดึงเนื้อหาจากไฟล์ใดไฟล์หนึ่งได้

บ่อยครั้งคุณอาจต้องการกรองผลลัพธ์จาก Get-Content cmdlet เพื่อแสดงเฉพาะบรรทัดจากไฟล์ที่มีรูปแบบเฉพาะ

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

วิธีที่ 1: ใช้รับเนื้อหาและตัวกรองตามสตริงเดียว

Get-Content employees.txt | Select-String -pattern $my_pattern

ตัวอย่างนี้จะดึงข้อมูลทุกบรรทัดจากไฟล์ชื่อ employees.txt ซึ่งมีรูปแบบที่ระบุในตัวแปร $my_pattern

วิธีที่ 2: ใช้รับเนื้อหาและกรองตามหลายสตริง

Get-Content employees.txt | Select-String -pattern $my_patterns

ตัวอย่างนี้จะดึงข้อมูลทุกบรรทัดจากไฟล์ชื่อ employees.txt ซึ่งมีรูปแบบใดๆ ที่ระบุในอาร์เรย์ $my_patterns

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

ตัวอย่างที่ 1: ใช้รับเนื้อหาและตัวกรองตามสตริงเดียว

สมมติว่าเรามีไฟล์ชื่อ employees.txt ในไดเร็กทอรีปัจจุบันที่มีค่า ID สำหรับพนักงานหลายๆ คนในบริษัทบางแห่ง

เราสามารถใช้ Get-Content cmdlet เพื่อดูบรรทัดทั้งหมดจากไฟล์นี้:

สมมติว่าเราต้องการกรองเฉพาะบรรทัดในไฟล์ที่มีรูปแบบ "A00" อยู่ที่ไหนสักแห่งในค่ารหัสพนักงาน

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

$my_pattern = "A00"
Get-Content employees.txt | Select-String -pattern $my_pattern

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

โปรดสังเกตว่าสิ่งนี้จะส่งกลับเฉพาะบรรทัดจากไฟล์ที่มีรูปแบบ "A00" อยู่ที่ไหนสักแห่งในบรรทัด

หากคุณต้องการส่งคืนเฉพาะเนื้อหาโดยไม่มีบรรทัดว่าง คุณสามารถกรองคุณสมบัติ บรรทัด ได้:

$my_pattern = "A00"
Get-Content employees.txt | Select-String -pattern $my_pattern | % { $_.Line }

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

ซึ่งจะส่งคืนเฉพาะบรรทัดจากไฟล์ที่มีรูปแบบ “A00” และไม่มีบรรทัดว่างก่อนหรือหลังเนื้อหา

ตัวอย่างที่ 2: ใช้รับเนื้อหาและกรองตามหลายสตริง

สมมติว่าเราต้องการกรองบรรทัดในไฟล์ employees.txt ที่มีรูปแบบใดๆ ต่อไปนี้ในค่ารหัสพนักงาน:

  • A00
  • B14
  • C00

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

$my_patterns = @("A00", "B14", "C00")
Get-Content employees.txt | Select-String -pattern $my_patterns

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

โปรดสังเกตว่าสิ่งนี้จะส่งกลับเฉพาะบรรทัดจากไฟล์ที่มีรูปแบบใดรูปแบบหนึ่งจากสามรูปแบบที่เราระบุ

หมายเหตุ: คุณสามารถดูเอกสารฉบับสมบูรณ์สำหรับ Get-Content cmdlet ใน PowerShell ได้ที่นี่

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