【发布时间】:2016-06-07 21:11:45
【问题描述】:
有什么简单的方法可以从 shell 中的负数中删除前导零? 例如:对于像 -02 这样的数字,输出将是 -2
【问题讨论】:
有什么简单的方法可以从 shell 中的负数中删除前导零? 例如:对于像 -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"
【讨论】:
+,如下所示:bc <<< "${a#+} + 0"
使用内置的printf怎么样?
$ num=-02
$ printf "%d\n" "$num"
-2
【讨论】:
据我所知,一个解决方案如下:
echo -02 | awk '{$0=int($0)}1'
但它只适用于整数。对于浮动有什么办法吗?
【讨论】: