有没有简单的方法可以从外壳中的负数中删除前导零?例如:对于像 -02 这样的数字,输出将是 -2
有多种方法可以做到这一点:
a="-02"
echo "$((a+0))"
另一个带有正则表达式:
a="-02"
echo "${a//-0/-}"
或
a="-02"
[[ "$a" =~ ^(-*|+*)0*(.*)$ ]]
echo "${BASH_REMATCH[1]}${BASH_REMATCH[2]}"
bc
:
a="-02"
bc <<< "$a + 0"
使用内置printf
怎么样?
$ num=-02
$ printf "%dn" "$num"
-2
据我所知,一种解决方案如下:
echo -02 | awk '{$0=int($0)}1'
但它仅适用于整数。对于漂浮有什么办法吗?