Unix

使用 grep 從 linux 中獲取特定行

  • March 28, 2019

您好,我是 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來僅列印匹配的文本,而不是整行。

在裡面執行它$()以阻止 shell 嘗試將結果作為程序執行,您的程式碼如下所示:

var1="Version must be incremented on update. Current version is: 532"
var2=$(echo "$var1" | grep '[0-9]\+$' -o)
echo "$var2"
# 532

引用自:https://serverfault.com/questions/960395