Здравствуйте, я новичок в командах linux, grep и awk.
Я пытаюсь получить числовое значение из этой строковой переменной, а затем сохранить его в другой переменной .
var1="Version must be incremented on update. Current version is: 532"
var2=var1 | grep "?"
Что мне делать, чтобы получить только val 532 из указанной выше строки и сохранить его в var2
Для ссылки вам понадобится $ var1
, а не var1
. Вам нужно echo
, чтобы Bash не пытался запустить его как программу. Вы также должны заключить его в двойные кавычки .
Для grep вам нужно регулярное выражение для сопоставления чисел, множество шаблонов может работать, но я использую " одну или несколько цифр в конце строки " , и вам понадобится опция grep -o
, чтобы печатать только соответствующий текст, а не всю строку.
Запустите это внутри $ ()
, чтобы оболочка не пыталась запустить результат как программу, и ваш код будет выглядеть так:
var1="Version must be incremented on update. Current version is: 532"
var2=$(echo "$var1" | grep '[0-9]\+$' -o)
echo "$var2"
# 532