получить конкретную строку из linux с помощью grep

Здравствуйте, я новичок в командах linux, grep и awk.

Я пытаюсь получить числовое значение из этой строковой переменной, а затем сохранить его в другой переменной .

var1="Version must be incremented on update. Current version is: 532"
var2=var1 | grep "?"

Что мне делать, чтобы получить только val 532 из указанной выше строки и сохранить его в var2

0
задан 28 March 2019 в 11:03
1 ответ

Для ссылки вам понадобится $ 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
1
ответ дан 4 December 2019 в 15:44

Теги

Похожие вопросы