有没有简单的方法可以从shell中的负数中删除前导零? 例如:对于像-02这样的数字,输出将为-2
答案 0 :(得分:1)
有多种方法可以做到这一点:
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"
答案 1 :(得分:1)
使用内置printf
怎么样?
$ num=-02
$ printf "%d\n" "$num"
-2
答案 2 :(得分:0)
我所知道的一个解决方案如下:
echo -02 | awk '{$0=int($0)}1'
但它只适用于整数。浮动有什么办法吗?