如何修改AWK命令,将第一列求和结果转为可读非科学计数法?
如何让AWK求和结果以普通数字格式输出而非科学计数法?
你可以通过两种方式修改AWK命令,避免输出科学计数法格式的求和结果:
方法1:用printf指定输出格式
直接在END块里用printf替代print,通过格式字符串定义输出样式:
- 输出整数(去掉小数部分):
awk '{sum+=$1;} END{printf "%.0f\n", sum;}' file.txt
- 保留指定小数位数(比如保留2位):
awk '{sum+=$1;} END{printf "%.2f\n", sum;}' file.txt
- 自动去除末尾无用的零,同时避免科学计数法:
awk '{sum+=$1;} END{printf "%.10g\n", sum;}' file.txt
方法2:修改AWK内置变量OFMT
OFMT是AWK控制数字输出格式的内置变量,默认值"%.6g"容易触发科学计数法。你可以通过两种方式修改它:
- 命令行传参方式:
awk -v OFMT="%.0f" '{sum+=$1;} END{print sum;}' file.txt
- 脚本内BEGIN块设置:
BEGIN{OFMT="%.2f"} {sum+=$1;} END{print sum;} file.txt
修改OFMT后,所有通过print输出的数字都会遵循这个格式。
内容的提问来源于stack exchange,提问作者Judy
相关产品推荐
相关产品推荐

