bash
May 15, 2023

Bash шаблоны фильтрации

Эти оболочки POSIX используют четыре различных шаблона фильтрации:

  • ${var#pattern}- Удаляет наименьшую строку с левой стороны, соответствующую шаблону.
  • ${var##pattern}- Удаляет самую большую строку с левой стороны, соответствующую шаблону.
  • ${var%pattern}- Удаляет наименьшую строку с правой стороны, соответствующую шаблону.
  • ${var%%pattern}- Удаляет самую большую строку с правой стороны, соответствующую шаблону.

Вот несколько примеров:

foo="foo-bar-foobar"
echo ${foo#*-}   # echoes 'bar-foobar'  (Removes 'foo-' because that matches '*-')
echo ${foo##*-}  # echoes 'foobar' (Removes 'foo-bar-')
echo ${foo%-*}   # echoes 'foo-bar'
echo ${foo%%-*}  # echoes 'foo'