如何 grep 句子中的任意数字

如何 grep 句子中的任意数字

你能帮我 grep 吗?我有一个:

variable="RMN quota:        0 bytes"

variable="RMN quota:        1.56 bytes"

要获取输出的目标 ID:0 或 1.56。

它会用 grep 来做什么?

答案1

POSIXly:

n=${variable% bytes} # strip the trailing " bytes"
n=${n##*[[:blank:]]} # strip the leading part up to the rightmost blank

答案2

这似乎有效:

grep -Eo '[0-9]+(\.[0-9]+)?' inputfile  

如果您要检查 shell 变量的值而不是文件的内容,您可以这样做:

echo "$variable" | grep -Eo '[0-9]+(\.[0-9]+)?'

答案3

既然你有 bash:

tr -d -c 0-9. <<<$variable

(也可以在 Zsh 中工作)。

相关内容