Bash içinde bir dizenin ortasındaki karakterleri kaldırma


12

Bash bir dize var ve dizenin ortasındaki bir karakteri kaldırmaya çalışıyorum. Ben böyle bir dize başında veya sonunda karakterler kaldırabilirsiniz biliyorum:

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

ama ortasından nasıl çıkarabilirim?

Yanıtlar:


18

Hangi karakterleri kaldıracağınızı biliyorsanız, parametre genişletmede ikame kullanabilirsiniz:

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

Veya hangi karakterleri saklayacağınızı biliyorsanız:

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

Veya konumu biliyorsanız:

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

Ya da bilmiyorsanız? Ya sadece Y ve S'yi korumak istediğinizi biliyorsanız?
Rutger Huijsmans

@RutgerHuijsmans: Güncellemeyi kontrol edin.
choroba
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.