извлечь шаблон с помощью инструмента bash

извлечь шаблон с помощью инструмента bash

(а) 0.2.0-123-g9e17591

(б) 0.2.0-g9e17591

  1. Как получить 0.2.0-123 и 0.2.0 соответственно?
  2. Как извлечь числа 0 и 123 из «0.2.0-123-g9e17591» и 2 и 0 из «0.2.0-g9e17591»

решение1

Вы могли бы использовать

$ IFS='-' read -ra PARTS <<< 0.2.0-123-g9e17591
$ echo ${PARTS[*]}

чтобы разбить строку на массив PARTS, используя -в качестве разделителя полей, а затем проверить результаты.

Затем вы можете поступить аналогичным образом с первым элементом массива.PARTS

$ IFS='.' read -ra PARTS2 <<< ${PARTS[0]}
$ echo ${PARTS2[*]}

Повторите операцию по мере необходимости.

Источники

  1. https://stackoverflow.com/questions/918886/how-do-i-split-a-string-on-a-delimiter-in-bash
  2. http://www.masteringunixshell.net/qa3/bash-how-to-echo-array.html
  3. https://stackoverflow.com/questions/15685736/как-извлечь-определенный-элемент-из-массива-в-bash

Связанный контент