2011-11-29 45 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