Cara menghapus karakter di tengah-tengah string dalam bash


12

Dalam bash saya memiliki string, dan saya mencoba untuk menghapus karakter di tengah-tengah string. Saya tahu kami dapat menghapus karakter dari awal atau akhir string seperti ini:

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

tetapi bagaimana saya bisa menghapus yang di tengah?

Jawaban:


18

Jika Anda tahu karakter apa yang harus dihapus, Anda dapat menggunakan subtitusi dalam perluasan parameter:

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

Atau, jika Anda tahu karakter apa yang harus disimpan:

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

Atau, jika Anda tahu posisinya:

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

Bagaimana jika Anda juga tidak tahu? Bagaimana jika Anda tahu Anda ingin mempertahankan Y dan S?
Rutger Huijsmans

@RutgerHuijsmans: Periksa pembaruan.
choroba
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.