如何在awk中将1.7格式化为001.70,现有printf命令输出错误如何修正
错误原因
你的原有写法存在两个问题:
- 格式控制符拆分错误:你把
.1f写在了printf的占位符外部,会被识别为普通字符串直接输出,不会参与数值格式化逻辑 - 格式规则不匹配:目标格式要求保留2位小数,且不需要拆分整数、小数部分单独格式化
正确可运行命令
echo 1.7 | awk '{ printf("%06.2f\n", $1) }'
格式参数说明
0:指定输出长度不足时用0填充空位,默认填充逻辑为空格6:指定输出内容的总长度,包含整数部分、小数点、小数部分总共6位.2f:指定按浮点数格式输出,保留2位小数
运行上述命令后输出结果为001.70,符合预期要求。
内容的提问来源于stack exchange,提问作者Payam Kelich
相关产品推荐
相关产品推荐

