Здравствуйте, я новичок в командах 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