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

PowerShell: วิธีแทรกบรรทัดหลังจากจับคู่รูปแบบ


บ่อยครั้งคุณอาจต้องการใช้ PowerShell เพื่อแทรกบรรทัดใหม่ลงในไฟล์หลังจากรูปแบบการจับคู่ที่เฉพาะเจาะจง

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

(Get-Content $my_file) | 
    Foreach-Object {
        $_
        if ($_ -match "Celtics") 
        {
            "Some New Text"
        }
    } | Set-Content $my_file

ตัวอย่างนี้ค้นหารูปแบบ “Celtics” ในบรรทัดของไฟล์ที่ระบุในเส้นทางในตัวแปร $my_file จากนั้นจึงเพิ่มบรรทัดใหม่พร้อมข้อความ “Some New Text” หลังบรรทัดเฉพาะนี้ .

หากไม่พบสตริง “Celtics” ในบรรทัดใดๆ ในไฟล์ ก็จะไม่มีการเพิ่มบรรทัดใหม่

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

ตัวอย่าง: วิธีแทรกบรรทัดหลังจากจับคู่รูปแบบใน PowerShell

สมมติว่าเรามีไฟล์ข้อความในไดเรกทอรีปัจจุบันของเราชื่อ teams.txt ซึ่งมีข้อมูลเกี่ยวกับทีมบาสเก็ตบอลต่างๆ

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

สมมติว่าเราต้องการค้นหาบรรทัดที่มีสตริง “Celtics” จากนั้นแทรกบรรทัดข้อความใหม่หลังบรรทัดนี้ในไฟล์

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

(Get-Content $my_file) | 
    Foreach-Object {
        $_
        if ($_ -match "Celtics") 
        {
            "Some New Text"
        }
    } | Set-Content $my_file

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

โปรดสังเกตว่ามีการเพิ่มบรรทัดใหม่ลงในไฟล์หลังบรรทัดที่มีสตริง “Celtics” เช่นเดียวกับที่เราระบุไว้

โปรดทราบว่าเราใช้ Set-Content cmdlet เพื่อตั้งค่าเนื้อหาของไฟล์ที่มีอยู่โดยส่งออกเนื้อหาที่มีอยู่ทั้งหมดไปยังไฟล์พร้อมกับบรรทัดข้อความใหม่

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

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