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

PowerShell: วิธีแทนที่อักขระตัวแรกใน String


คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน PowerShell เพื่อแทนที่อักขระตัวแรกของแต่ละสตริงในไฟล์:

Get-Content old.txt | ForEach { $_ -replace "^#", "_" } | Set-Content new.txt

ตัวอย่างนี้จะแทนที่อักขระ # ที่จุดเริ่มต้นของแต่ละสตริงในไฟล์ชื่อ old.txt และบันทึกผลลัพธ์ลงในไฟล์ใหม่ชื่อ new.txt .

นี่คือสิ่งที่คำสั่งต่างๆ ทำ:

  • รับเนื้อหา: ส่งกลับบรรทัดทั้งหมดจากไฟล์ข้อความ
  • ForEach: ระบุการดำเนินการที่จะดำเนินการกับแต่ละบรรทัดของไฟล์
  • $_: ส่งกลับข้อความที่มีอยู่จากบรรทัดปัจจุบัน
  • -แทนที่ “^#”, “_”: แทนที่อักขระเริ่มต้น ( ^ ) ของ # ด้วย _
  • ชุดเนื้อหา: บันทึกเนื้อหาที่อัปเดตลงในไฟล์ข้อความเฉพาะ

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

ตัวอย่าง: วิธีแทนที่อักขระตัวแรกในสตริงโดยใช้ PowerShell

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

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

สมมติว่าเราต้องการแทนที่อักขระ # ที่จุดเริ่มต้นของแต่ละบรรทัดด้วยเครื่องหมายขีดล่างแทน

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

Get-Content team_list.txt | ForEach { $_ -replace "^#", "_" } | Set-Content team_list2.txt

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

โปรดสังเกตว่าเมื่อเราใช้ Get-Content cmdlet เพื่อดูเนื้อหาของไฟล์ team_list2.txt ใหม่ เราจะเห็นว่าอักขระตัวแรกในแต่ละบรรทัดถูกแทนที่ด้วย ขีดเส้นใต้

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

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