【发布时间】:2015-01-03 13:08:37
【问题描述】:
我如何(在 ubuntu 下)从一碗汤中获取第一个整数
【问题讨论】:
-
哈希值总是在数字后面吗?
-
而且字符串总是以你要保存的整数开头吗?
标签: regex linux bash integer extract
我如何(在 ubuntu 下)从一碗汤中获取第一个整数
【问题讨论】:
标签: regex linux bash integer extract
使用纯 BASH:
line='321#somewords-and-numbers32452352'
[[ "$line" =~ ^[^0-9]*([0-9]+) ]] && echo "${BASH_REMATCH[1]}"
321
或者使用sed:
sed 's/^[^0-9]*\([0-9]\+\).*$/\1/' <<< "$line"
321
【讨论】:
echo 'abc321#somewords-and-numbers32452352' | grep -oP '^[^0-9]*\K[0-9]+'
输出:
321【讨论】:
使用 sed 和字符串匹配返回字符串中的第一个数字。
echo $line | sed -e 's/^[^0-9]*\([0-9][0-9]*\).*/\1/'
正则表达式[^0-9]* 的第一部分是删除任何存在的非数字前导字符。
【讨论】: