我使用的程序从文本文件中获取输入,并期望处理货币的字符串格式为XXXX.XX
我希望能够输入数字的相关部分,并让我的脚本根据需要添加前导零和/或尾随点和零。例如,要输入1.1并将其格式化为0001.10,请输入32并将其格式化为0032.00,输入.99并将其格式化为0000.99等。
纯粹用bash做这件事会很好,但是像sed一样调用其他东西也会没问题。
答案 0 :(得分:5)
您可以像这样使用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个小数位答案 1 :(得分:1)
printf "%07.2f" <input>
实施例:
printf "%07.2f" .99
= 0000.99