2011-11-29 62 views
0

我发现两列之间的区别在一个文件中像10功率

cat "trace-0-dir2.txt" | awk '{print expr $2-$1}' | sort 

这给了我四舍五入避免次数值,如:

-1.28339e+09 
-1.28339e+09 
-1.28339e+09 
-1.28339e+09 

我想避免四舍五入和想要确切的价值。如何实现? 仅供参考,跟踪-O-dir2.txt包含:

1283453524.342134 65337.141749 10 2 
1283453524.556784 65337.388047 11 2 
1283453524.556794 65337.411165 12 2 
1283453524.556806 65337.435947 13 2 
1283453524.556811 65337.435989 14 2 
1283453524.556816 65337.453931 15 2 
1283453524.771522 65337.484866 16 2 

回答

0

printf功能可以帮得到你所需要的格式。你不需要expr,你不需要catawk可以进行任何计算,您可以直接在文件上调用awk

您可以根据您要查找的格式将20.20更改为任意数字。

[jaypal:~/Temp] cat file0 
1283453524.342134 65337.141749 10 2 
1283453524.556784 65337.388047 11 2 
1283453524.556794 65337.411165 12 2 
1283453524.556806 65337.435947 13 2 
1283453524.556811 65337.435989 14 2 
1283453524.556816 65337.453931 15 2 
1283453524.771522 65337.484866 16 2 

[jaypal:~/Temp] awk '{ printf("%20.20f\n", $2-$1)}' file0 
-1283388187.20038509368896484375 
-1283388187.16873693466186523438 
-1283388187.14562892913818359375 
-1283388187.12085914611816406250 
-1283388187.12082219123840332031 
-1283388187.10288500785827636719 
-1283388187.28665614128112792969 

man页:

字段宽度:

一个可选数字串指定字段宽度;如果输出字符串的字符数少于字段宽度,则会在左侧(或右侧,如果已经给出左侧调整指示符)空白填充以构成字段宽度(请注意,前导零是标记,但嵌入的零是字段宽度的一部分);

精度:

可选期间,`',后跟一个可选的数字字符串,给出一个精确的,它指定出现在小数点后,为E和F格式的位数,或从字符串打印的最大字符数;如果数字字符串丢失,则精度被视为零;

+0

谢谢。有效! – flowerpot