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 ได้ที่นี่

