Как извлечь любую цифру из предложения

Как извлечь любую цифру из предложения

Не могли бы Вы помочь мне с grep-ом? У меня есть:

variable="RMN quota:        0 bytes"

и

variable="RMN quota:        1.56 bytes"

Целевой идентификатор для получения вывода: 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  

Если вы проверяете значение переменной оболочки, а не содержимое файла, вы можете сделать это:

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

решение3

Поскольку у вас есть bash:

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

(также будет работать в Zsh).

Связанный контент