Назад | Перейти на главную страницу

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

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