bash - 从数字中删除前导零

标签 bash

如何在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/

相关文章:

javascript - execFile Node.js - 找不到 Shell 脚本

linux - 如何编写脚本从父目录到最深的文件夹目录执行命令?

bash - 更新文件名中的数字

android - 无法在 bash 脚本中运行 adb 命令

linux - Sudo - 等待 child ,并获取 child PID

linux - 为什么 `sh myscript` 和 `source myscript` 之间的 $0 不同?

linux - 压缩一个月前的文件

arrays - bash + what unset 命令的反操作 + 添加 arr 成员

bash - 目录内容和目录条目有什么区别?

bash - 我可以让 shell 别名评估历史替换命令吗?