Bash - 删除两位数字的前导零
Bash - Remove leading zero for numbers with double digits
我在 bash 数字中有一个变量,其中包含值 01, 02, 03, 04, 05, 06, 07, 08, 09, 010, 011, 012.
我想删除 010, 011
和 012
之前的前导零。如果数字是两位数,我只想删除前导零。
我怎样才能做到这一点?
提前致谢!
尝试:
a="012"
printf '%02d\n' "$((10#${a}))"
12
另一种方式:
a="014"
printf "%02d\n" $(echo "obase=10;$a" |bc)
14
另一个:
[[ $a =~ ^0+[1-9]{2,}$ ]] && a="$(echo $((10#${a})))"
echo $a
这将删除 2
或更多非零数字从头开始的所有 0
。
我在 bash 数字中有一个变量,其中包含值 01, 02, 03, 04, 05, 06, 07, 08, 09, 010, 011, 012.
我想删除 010, 011
和 012
之前的前导零。如果数字是两位数,我只想删除前导零。
我怎样才能做到这一点?
提前致谢!
尝试:
a="012"
printf '%02d\n' "$((10#${a}))"
12
另一种方式:
a="014"
printf "%02d\n" $(echo "obase=10;$a" |bc)
14
另一个:
[[ $a =~ ^0+[1-9]{2,}$ ]] && a="$(echo $((10#${a})))"
echo $a
这将删除 2
或更多非零数字从头开始的所有 0
。