您好,我是 linux 和 grep 和 awk 命令的新手。
我试图从这个字符串变量中获取数字值,然后将其存储在另一个变量中。
var1="Version must be incremented on update. Current version is: 532"
var2=var1 | grep "?"
我应该怎么做才能从上面的字符串中检索 val 532 并将其存储在 var2 中
答案1
您需要$var1
引用它,而不是var1
。您需要echo
它,这样 Bash 就不会尝试将其作为程序运行。您也应该用双引号引起来。
对于 grep,你需要一个正则表达式来匹配数字,很多模式可能都有效,但我正在使用“字符串末尾的一个或多个数字“,并且您需要 grep 选项-o
来仅打印匹配的文本,而不是整行。
在里面运行这个$()
来阻止 shell 尝试将结果作为程序运行,你的代码如下所示:
var1="Version must be incremented on update. Current version is: 532"
var2=$(echo "$var1" | grep '[0-9]\+$' -o)
echo "$var2"
# 532