web-dev-qa-db-fra.com

Bash: Supprimer des caractères jusqu'à ce qu'un certain caractère de la chaîne

comment puis-je supprimer des caractères d'une chaîne jusqu'à un certain caractère avec bash? Exemple:

"ananas1kiwi2Apple1banana2tree"

ressemblera à ceci:

"Apple1banana2tree"

Je vous remercie!

10
Anne K.

Si vous souhaitez supprimer la sous-chaîne jusqu'à 2, en utilisant bash extension des paramètres:

${var#*2}
  • # fait une correspondance non gourmande de gauche, utilisez ## par gourmandise

  • #*2 correspond et élimine jusqu'au premier 2 à partir de la variable var

Exemple:

$ var='ananas1kiwi2Apple1banana2tree'
$ echo "${var#*2}"
Apple1banana2tree
22
heemayl

Utilisation pure bashexpansion des paramètres du shell .

$ string="ananas1kiwi2Apple1banana2tree"
$ newString="${string#*2}"
$ printf "%s\n" "$newString"
Apple1banana2tree
5
Inian