วิธีการลบตัวอักษรที่อยู่ตรงกลางของสตริงในทุบตี


12

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

myVar='YES'
myVar="${myVar#'Y'}"
myVar="${myVar%'S'}"

แต่ฉันจะลบอันที่ตรงกลางออกได้อย่างไร

คำตอบ:


18

หากคุณรู้ว่าอักขระใดที่จะลบคุณสามารถใช้การทดแทนในการขยายพารามิเตอร์:

myVar=${myVar/E}  # Replace E with nothing

หรือถ้าคุณรู้ว่าควรเก็บตัวอักษรอะไร:

myVar=${myVar/[^YS]}  # Replace anything but Y or S

หรือถ้าคุณรู้ตำแหน่ง:

myVar=${myVar:0:1}${myVar:2:1}  # The first and third characters

ถ้าคุณไม่รู้เช่นกัน ถ้าคุณเพิ่งรู้ว่าคุณต้องการรักษา Y และ S?
Rutger Huijsmans

@RutgerHuijsmans: ตรวจสอบการอัปเดต
choroba
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.