文で数字を見つける方法

文で数字を見つける方法

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でも動作します)。

関連情報