在 bash 中,如何修改 afloat以便点之前的部分至少有两位数?
我想让A 列中的数字显示为B 列:
A (Current) B (Desired)
----- ------
8.456 08.456
4.19 04.19
3.5 03.5
Run Code Online (Sandbox Code Playgroud)
我做了很多搜索,但我发现的大部分内容都是关于如何显示带有N 位小数的数字(例如17.7647 to 17.76),这没有帮助。
这是一个实用函数,bash可以使用printf以下方法实现此目的:
fpad() {
local n="${1?needs an argument}"
[[ $n == [0-9].* ]] && echo "0$n" || echo "$n"
}
Run Code Online (Sandbox Code Playgroud)
将其用作:
fpad "8.456"
08.456
fpad "4.19"
04.19
fpad "3.5"
03.5
fpad "13.25"
13.25
fpad "1325"
1325
Run Code Online (Sandbox Code Playgroud)
使用格伦的建议read:
fpad() {
local n="${1?needs an argument}"
local num frac
IFS=. read num frac <<< "$n"
printf '%02d.%d\n' "$num" "$frac"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |