RegEX, чтобы получить обязательное поле из строки в сценарии оболочки - PullRequest
1 голос
/ 24 апреля 2020

Я получил строку, как показано ниже.

report="Reading trace file coverage/lcov.info Summary coverage rate: lines......: 80.5% (4900 of 6090 lines) functions..: no data" echo The value of variable = $report

Добавить Я хочу разобрать только "80,5" в этом и сохранить в переменной сценария оболочки.

1 Ответ

0 голосов
/ 24 апреля 2020

С bash и регулярным выражением:

[[ "$report" =~ :\ ([0-9.]+)% ]] && echo "${BASH_REMATCH[1]}"

Это регулярное выражение (:\ ([0-9.]+)%) описывает подстроку, которая содержит двоеточие, за которым следует пробел, затем идет хотя бы один символ, который является числом или точка ([0-9.]+), а затем идет знак процента. Часть, соответствующая круглым скобкам, берется в поле 1 массива BASH_REMATCH.

Вывод:

80.5

См .: Часто задаваемые вопросы по регулярным выражениям переполнения стека

...