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

PowerShell: วิธีตัดอักขระ N ตัวแรกจากสตริง


บ่อยครั้งคุณอาจต้องการลบอักขระ N ตัวแรกออกจากสตริงใน PowerShell

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

วิธีที่ 1: ลบอักขระ N ตัวแรกออกจากสตริง

$new_string = $my_string.Substring(4)

ตัวอย่างนี้จะลบอักขระสี่ตัวแรกออกจากตัวแปรสตริงชื่อ $my_string และกำหนดผลลัพธ์ให้กับตัวแปรใหม่ชื่อ $new_string

วิธีที่ 2: ลบอักขระ N ตัวแรกออกจากแต่ละบรรทัดในไฟล์

(gc original_file.txt) | % {$_.Substring(4)} | sc new_file.txt

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

หมายเหตุสิ่งต่อไปนี้:

  • gc เป็นนามแฝงสำหรับ รับเนื้อหา
  • % เป็นนามแฝงสำหรับ ForEach-Object
  • sc เป็นนามแฝงสำหรับ Set-Content

โปรดทราบว่าในทั้งสองตัวอย่างนี้ เราใช้เมธอด Substring() เพื่อส่งคืนสตริงทั้งหมด เริ่มต้นจาก ดัชนีเฉพาะ

ด้วยการใช้ Substring(4) เราสามารถส่งคืนสตริงทั้งหมดโดยเริ่มจากตำแหน่งดัชนี 4 ซึ่งจะตัดอักขระ 4 ตัวแรกออกจากสตริงอย่างมีประสิทธิภาพ

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

ตัวอย่างที่ 1: ลบอักขระ N ตัวแรกออกจากสตริงใน PowerShell

สมมติว่าเรามีตัวแปรชื่อ $my_string ใน PowerShell ซึ่งมีสตริงต่อไปนี้:

A005Zach

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อสร้างตัวแปรใหม่ชื่อ $new_string ซึ่งจะลบอักขระสี่ตัวแรกออกจากสตริงเดิม:

$my_string = "A005Zach"
$new_string = $my_string.Substring(4)

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

โปรดสังเกตว่าสิ่งนี้ส่งคืนสตริงจากตัวแปรชื่อ $my_string โดยลบอักขระสี่ตัวแรกออก

ตัวอย่างที่ 2: ลบอักขระ N ตัวแรกออกจาก แต่ละบรรทัดในไฟล์ใน PowerShell

สมมติว่าเรามีไฟล์ชื่อ employees.txt ซึ่งมีรหัสพนักงานของพนักงานหลายๆ คนในบริษัทบางแห่ง

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

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อลบอักขระสี่ตัวแรกออกจากแต่ละบรรทัดในไฟล์ และบันทึกผลลัพธ์ลงในไฟล์ใหม่ชื่อ employees_new.txt:

(gc employees.txt)| % {$_.Substring(4)} | sc employees_new.txt

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

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

หมายเหตุ: คุณสามารถแทนที่ 4 ในเมธอด สตริงย่อย ด้วยตัวเลขใดก็ได้ที่คุณต้องการ โดยขึ้นอยู่กับจำนวนอักขระที่คุณต้องการ ลบออกจากจุดเริ่มต้นของสตริง

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