如何从shell中的负数中删除前导零

时间:2016-06-07 11:46:45

标签: bash sh

有没有简单的方法可以从shell中的负数中删除前导零? 例如:对于像-02这样的数字,输出将为-2

3 个答案:

答案 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'

但它只适用于整数。浮动有什么办法吗?