Как убрать символы в середине строки в bash


12

В bash у меня есть строка, и я пытаюсь удалить символ в середине строки. Я знаю, что мы можем удалить символы из начала или конца строки следующим образом:

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?
Рутгер Хейсманс

@RutgerHuijsmans: проверьте обновление.
Чороба
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.