Come rimuovere i caratteri nel mezzo di una stringa in bash


12

In bash ho una stringa e sto cercando di rimuovere un carattere nel mezzo della stringa. So che possiamo rimuovere i caratteri dall'inizio o dalla fine di una stringa come questa:

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

ma come posso rimuovere quello nel mezzo?

Risposte:


18

Se sai quali caratteri rimuovere, puoi utilizzare la sostituzione nell'espansione dei parametri:

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

Oppure, se sai quali personaggi tenere:

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

Oppure, se conosci la posizione:

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

E se non lo sapessi neanche tu? E se solo sapessi di voler mantenere Y e S?
Rutger Huijsmans,

@RutgerHuijsmans: controlla l'aggiornamento.
Choroba,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.