Если вы знаете, что числа будут вместе, как это:
pax> echo 'blah=-Xms512m' | sed 's/[^0-9]//g'
512
Он в основном заменяет все нечисловые символы ничем.Конечно, он не будет делать разумных вещей с:
pax> echo 'blah77=-Xms512m' | sed 's/[^0-9]//g'
77512
, но, если у вас есть только один номер, он будет работать нормально.
Если вам просто нужен первый номер,Вы можете использовать:
pax> echo 'blah77=-Xms512m' | sed -e 's/^[^0-9]*//' -e 's/[^0-9].*$//'
77
Для последнего:
pax> echo 'blah77=-Xms512m' | sed -e 's/[^0-9]*$//' -e 's/^.*[^0-9]//'
512