Bash: удалять символы до определенного символа из строки

Как я могу удалить символы из строки до определенного символа в bash? Пример:

"ananas1kiwi2apple1banana2tree"

должна выглядеть так:

"apple1banana2tree"

спасибо!

2 ответов


если вы хотите удалить подстроку до 2, используя bash параметр расширения:

${var#*2}
  • # не жадный матч слева, используйте ## для жадности

  • #*2 матчи и отбрасывает до первого 2 от переменной var

пример:

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

использование pure bash расширение параметров оболочки.

$ string="ananas1kiwi2apple1banana2tree"
$ newString="${string#*2}"
$ printf "%s\n" "$newString"
apple1banana2tree