给定一个文件的字节大小,我想将其格式化为100到3 101 with trailing zeros,例如1883954变成1.80M.
bash不支持浮点运算,所以我使用了awk.问题是我不知道如何保持后面的零.当前解决方案:
if [ $size -ge 1048576 ]
then
size=$(awk 'BEGIN {printf "%.3g",'$size'/1048576}')M
elif [ $size -ge 1024 ]
then
size=$(awk 'BEGIN {printf "%.3g",'$size'/1024}')K
fi
(文件不是那么大,所以我不必考虑更大的单位.)
编辑:这还有一个问题.见下面阿德里安·弗鲁霍斯的 comments .