Unix
使用 grep 從 linux 中獲取特定行
您好,我是 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