使用 grep 在 Linux 中获取特定行

使用 grep 在 Linux 中获取特定行

您好,我是 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

相关内容