awk

OFMT

OFMT内置变量仅在NAWK和GAWK里可用。

当一个数字被转换成一个串进行打印, AWK使用OFMT格式来决定如何进行打印的值。默认值是“% 0.6g”,这将打印总共6个字符,包括在小数点的两侧。

当使用g时,你必须计算小数点两侧的所有字符。例如,“% 0.4g”是指总的4个字符将打印,包括小数点的两侧的字符。

当使用了f时,你是只计算小数点右侧的字符。例如,“%.4f ”是指小数点右侧4个字符将被印。在小数点左侧总字符在这里无关紧要。

下面ofmt.awk例子显示,当使用不同的OFMT值(g和f),如何打印输出的:

$ cat ofmt.awk
BEGIN {
    total=143.123456789;
    print "---using g----";
    print "Default OFMT:", total;
    OFMT="%.3g";
    print "%.3g OFMT:", total;
    OFMT="%.4g";
    print "%.4g OFMT:", total;
    OFMT="%.5g";
    print "%.5g OFMT:", total;
    OFMT="%.6g";
    print "%.6g OFMT:", total;
    print "---using f---";
    OFMT="%.0f";
    print "%.0f OFMT:", total;
    OFMT="%.1f";
    print "%.1f OFMT:", total;
    OFMT="%.2f";
    print "%.2f OFMT:", total;
    OFMT="%.3f";
    print "%.3f OFMT:", total;
}


$ awk -f ofmt.awk
---using g----
Default OFMT: 143.123
%.3g OFMT: 143
%.4g OFMT: 143.1
%.5g OFMT: 143.12
%.6g OFMT: 143.123
---using f---
%.0f OFMT: 143
%.1f OFMT: 143.1
%.2f OFMT: 143.12
%.3f OFMT: 143.123