识别字符串上的数字(SHELL)

时间:2012-10-05 08:59:58

标签: shell

我正在尝试一种识别String上的数字并将这些数字放在变量上的算法。 例如,“abc 123”在变量上保存123。 谢谢。

2 个答案:

答案 0 :(得分:0)

假设您只需要第一个数字:

myNumber="$(printf %s "$myString" | grep -Eo '[[:digit:]]+' | head -1)"

答案 1 :(得分:0)

因为一个字符串可能有更多的数字段,所以我会选择sed:

sed 's/[^0-9]//g'

kent$  echo "foo 0 abc 123 foo 456"|sed 's/[^0-9]//g' 
0123456

我希望这就是你想要的。

哦,忘了"保存到变量"部分:

kent$  number=$(echo "foo 0 abc 123 foo 456"|sed 's/[^0-9]//g')


kent$  echo $number
0123456