Не могли бы Вы помочь мне с 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).