打印多列时使用awk的printf用法

时间:2017-10-04 13:03:12

标签: awk

我正在尝试以下命令:

cat dcl1serrfip_check.csv | grep -Fi 'BANK0_F5_WRDAT_P0[0]' | grep -i setup | grep 'L2H' | grep highv | grep -i low | awk -F ',' -v dev="0.861" -v rc="1.105" -v inte="0.872" '{ print ($10+$11)-(($12+$13)-($14))","($10*dev)+($11*rc)-(($12*dev)+($13*rc)-($14*inte))}'

这给出了以下输出:

-6.93889e-18,0.000288

我希望将此输出格式化为4位小数。怎么做?期望的输出将是

-0.0000,0.0002

1 个答案:

答案 0 :(得分:1)

您需要,%0.4f%.4f

测试用途:

awk 'BEGIN{ printf("%0.4f\n", -6.93889e-18) }'

所以它变成了:

printf("%0.4f,%0.4f\n", ($10+$11)-(($12+$13)-($14)), ($10*dev)+($11*rc)-(($12*dev)+($13*rc)-($14*inte)) )

实际上你可以在awk本身重写你的命令,不需要那么多grepcat组合