การค้นหาและแทนที่ข้อความ

PowerShell:
การค้นหาและแทนที่ข้อความ

วิธีการ:

PowerShell ทำให้การค้นหาและแทนที่ค่อนข้างง่ายดาย ลองใช้ -replace สำหรับสตริง และ Get-Content ร่วมกับ Set-Content สำหรับไฟล์

แทนที่ข้อความในสตริง:

$text = "I love PowerShell"
$updatedText = $text -replace "love", "adore"
$updatedText

ตัวอย่างผลลัพธ์:

I adore PowerShell

แทนที่ข้อความในไฟล์:

$file = "example.txt"
$content = Get-Content $file
$content | ForEach-Object { $_ -replace "oldWord", "newWord" } | Set-Content $file

ไม่มีผลลัพธ์ที่นี่ แต่ example.txt ตอนนี้มี “oldWord” ทั้งหมดถูกแทนที่ด้วย “newWord”

ลงลึก

ตั้งแต่เริ่มต้นของการแก้ไขข้อความ การค้นหาและแทนที่ได้เป็นหัวมุมหลักแล้ว นึกถึงมันเหมือนกับฟังก์ชั่นค้นหาและแทนที่ในตัวประมวลผลคำ แต่ถูกปรับให้เหมาะสำหรับความต้องการด้านการเขียนโค้ด

ในอดีต พ่อมดบรรทัดคำสั่งใช้เครื่องมือเช่น sed ใน Unix PowerShell นำฟังก์ชันนี้เข้ามาในภาษาสคริปต์ของมัน ทำไมมันเจ๋ง? เพราะมันผูกกับอ็อบเจ็กต์ ไม่ใช่แค่ข้อความ นั่นหมายความว่าคุณสามารถปรับไม่เพียงแค่โค้ดและไฟล์ข้อความ แต่ยังรวมถึงโครงสร้างข้อมูลและอื่นๆ

ทางเลือกอื่น? แน่นอน เรามีเครื่องมือแก้ไขข้อความและ IDE ด้วยฟังก์ชั่นค้นหาและแทนที่ของตัวเอง สคริปต์แบทช์ หรือแม้แต่ไลบรารีโปรแกรมมิ่งที่ออกแบบมาสำหรับการจัดการข้อความ

รายละเอียดการใช้งาน? PowerShell ใช้ regex นั่นหมายความว่าคุณสามารถแทนที่ของตามรูปแบบ ไม่ใช่แค่คำที่เฉพาะเจาะจง และด้วยสคริปต์ PowerShell คุณสามารถทำให้การดำเนินการเหล่านี้เป็นอัตโนมัติในจำนวนไฟล์จำนวนมาก ช่วยให้คุณประหยัดเวลาได้มาก

ดูเพิ่มเติม

  • การเอกสารของตัวดำเนินการ -replace ของ PowerShell: ลิงค์
  • การใช้ Get-Content และ Set-Content: ลิงค์