Delete everyting preceding and including a certain substring from variable

20,838

Solution 1

If you want to remove the substring upto 2, using bash parameter expansion:

${var#*2}
  • # does non-greedy match from left, use ## for greediness

  • #*2 matches and discards upto first 2 from variable var

Example:

$ var='ananas1kiwi2apple1banana2tree'
$ echo "${var#*2}"
apple1banana2tree

Solution 2

Using pure bash shell parameter expansion.

$ string="ananas1kiwi2apple1banana2tree"
$ newString="${string#*2}"
$ printf "%s\n" "$newString"
apple1banana2tree
Share:
20,838
Anne K.
Author by

Anne K.

Updated on July 05, 2022

Comments

  • Anne K.
    Anne K. almost 2 years

    In Bash, how can I delete characters from a variable until a certain substring?

    Example:

    ananas1kiwi2apple1banana2tree
    

    shall look like this:

    apple1banana2tree
    

    The substring in this case is 2.