文章から任意の数字をgrepする方法

文章から任意の数字をgrepする方法

grep について手伝ってもらえますか? 次のものがあります:

variable="RMN quota:        0 bytes"

そして

variable="RMN quota:        1.56 bytes"

出力を取得するターゲット ID: 0 または 1.56。

grep すると何になるでしょうか?

答え1

POSIX 的には:

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  

ファイルの内容ではなくシェル変数の値をチェックする場合は、次のようにします。

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

答え3

bash があるので:

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

(Zsh でも動作します)。

関連情報