将 bash 中的数字输出格式化为精确到小数点后 4 位

Dis*_*ame 4 bash numeric-data printf

我有一个将数字输出到日志文件的命令,我不喜欢数字更改小数位数时的外观,因为它破坏了对齐方式并使一切看起来很混乱。如何强制输出每次都具有相同的小数位数?

前任:

531.125
531.4561
531.3518
531.2
Run Code Online (Sandbox Code Playgroud)

应该:

531.1250
531.4561
531.3518
531.2000
Run Code Online (Sandbox Code Playgroud)

谢谢!

ImH*_*ere 7

在 bash printf 中可以使用%f格式

#!/bin/bash
for a in 531.125 531.4561 531.3518 531.2; do
    printf "%8.4f\n" "$a"
done
Run Code Online (Sandbox Code Playgroud)

执行给出:

531.1250
531.4561
531.3518
531.2000
Run Code Online (Sandbox Code Playgroud)