如何在Bash/shell中转换所有数字?
VAR=00005
VAR=00010
VAR=00601
VAR=00550
到
echo $VAR #5
echo $VAR #10
echo $VAR #601
echo $VAR #550
最佳答案
或者像这样:
kent$ echo "00005
00010
00601
00550"|awk '$0*=1'
5
10
601
550
针对您更新的问题(使用 VAR)
首先,你应该有不同的变量名,不要都和VAR一样。
看下面的例子:
kent$ VAR=00601
kent$ VAR=$((VAR+0))
kent$ echo $VAR
601
编辑
对于评论。(08、09 无效):
08、09 在这里工作,可能是用我的 shell 做的事情。我有zsh。我在 bash 下测试了以下内容,它们有效。希望有所帮助:
在 zsh 下:
kent$ v=08
kent$ v=$((v+0))
kent$ echo $v
8
在 bash 下,下面工作
kent@7PLaptop:/tmp$ bash -version
GNU bash, version 3.2.48(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
kent@7PLaptop:/tmp$ v=08
kent@7PLaptop:/tmp$ v=$(sed 's/^0*//'<<< $v)
kent@7PLaptop:/tmp$ echo $v
8
关于bash - 从数字中删除前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13362497/