bash - 在 bash 中以某种方式格式化数字

标签 bash variables sed formatting

我使用的一个程序从一个文本文件中获取输入,并期望处理货币的字符串被格式化为 XXXX.XX

我希望能够只输入数字的相关部分,并让我的脚本根据需要添加前导零和/或尾随点和零。例如输入1.1格式为0001.10,输入32格式为0032.00,输入.99格式为0000.99等。

纯粹用 bash 来做会很好,但是调用其他东西,比如 sed 也很好。

最佳答案

您可以像这样使用 printf:

s='32'
printf "%07.2f\n" "$s"
0032.00

s='1.1'
printf "%07.2f\n" "$s"
0001.10

s='.99'
printf "%07.2f\n" "$s"
0000.99

说明:这种格式 %07.2f 使用:

  • 0 用于在需要时用零填充
  • 7 总宽度为7(包括小数点)
  • .2f 用于指定 2 个小数位

关于bash - 在 bash 中以某种方式格式化数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25019212/

相关文章:

linux - Bash/Shell 脚本 - 如何操作文本文件中的值

bash - 将 shell 参数存储在文件中,同时保留引号

regex - Bash Regex 用相对路径替换绝对路径

java - Eclipse 调试收集变量值

javascript - jquery 变量值出血

python-3.x - 为什么 Python 不接受以 0 开头的整数作为有效代码?

bash - 使用 sed/awk 在启动时写入/etc/networking/interfaces?

arrays - 如何使用 bash 将数组的所有元素打印到文件中

linux - 在linux中回显路径有什么作用?

regex - 正则表达式不提取组