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 ในเมธอด สตริงย่อย ด้วยตัวเลขใดก็ได้ที่คุณต้องการ โดยขึ้นอยู่กับจำนวนอักขระที่คุณต้องการ ลบออกจากจุดเริ่มต้นของสตริง


