藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月26日 11:18


請教一個關於awk進行域計算問題.

文本如下:
"333333",5621.00,859.00,0.00,0.00,9621.00,634.00
……
計算:(保留兩位小數)
域4=域6-域2
域5=域7-域3
輸出文本格式如下:
"333333",5621.00,632159.00,4000.00,-225.00,9621.00,412159.00
……
我用
awk 'BEGIN{OFS=FS=",";OFMT="%.2f"}{$4=$6-$2;$5=$7-$3;print
$1,$2,$3,$4,$5,$6,$7}' file1>file2
結果輸出的域4、域5沒有保留兩位小數,這是為什麼?該怎麼寫?

請教一個關於awk進行域計算問題.

awk 'BEGIN{OFS=FS=",";OFMT="%.2f"}{$4=$6-$2;$5=$7-$3;printf "%6.2f %6.2f %6.2f  %6.2f  %6.2f %6.2f %6.2f ",
$1,$2,$3,$4,$5,$6,$7}' file1>file2

請教一個關於awk進行域計算問題.

怎麼還是不行,不但沒有輸出想要的數據就連printf函數格式也一起加上了,是否我哪裡寫錯了,可我試了多遍了。

請教一個關於awk進行域計算問題.

那你把結果貼出來了,都不知道你在說啥
第一個域有""
[code]awk 'BEGIN{OFS=FS=","}{$4=$6-$2;$5=$7-$2;printf "%s,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f\n",$1,$2,$3,$4,$5,$6,$7}' file
"333333",5621.00,859.00,4000.00,-4987.00,9621.00,634.00[/code]

請教一個關於awk進行域計算問題.

試試這個:

awk -F, 『{$4=$6-$2;$5=$7-$2;printf "%s,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f\n",$1,$2,$3,$4,$5,$6,$7}' file

請教一個關於awk進行域計算問題.

為啥非要把$6-$2賦給$4哪?新的變量不可以啊?

請教一個關於awk進行域計算問題.

謝謝各位,已經搞定。



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com