2014-10-05 56 views
-2

感謝您閱讀本文。小於和大於awk中的計算

目標: 獲取每個公司的總成本。 品牌狗> 200,再算上* 0.03別人數* 0.05

所以 'yhaoo辦公室' 共將是$ 9.00:

300 * 0.03 = 9.00 

如果這很容易......如果總量少於$ 5 , 有什麼不同? 看着雅虎條:

60 * .05 = 3 & 5-3 = 2
cat /tmp/tmp.9VvVu4MT5Y 
mid,company,brand,count 
455,stackoverflow,inet,18 
8484,reddit,neti,13 
1257,google,marks,50 
4780,yahoo bar,dogs,60 
4789,oohay park,dogs,100 
8754,yhaoo office,dogs,300 
+0

什麼是你期望的輸出?在您的輸入中沒有第5列。 – 2014-10-05 08:35:06

+0

計數* .03或.05的乘法取決於計數。 – 2014-10-05 18:49:11

+0

是我的答案是否符合您的需求? – 2014-10-05 18:50:22

回答

0

我想你想這樣的事情,

$ awk -F, -v OFS="," 'NR>1{if($3=="dogs" && $4>200) $5=$4*0.03; if($3=="dogs" && $4<200) $5=$4*0.05;}1' file 
mid,company,brand,count 
455,stackoverflow,inet,18 
8484,reddit,neti,13 
1257,google,marks,50 
4780,yahoo bar,dogs,60,3 
4789,oohay park,dogs,100,5 
8754,yhaoo office,dogs,300,9 
+0

這是我從fiedld $ 5減法所做的: 'awk -F,-v OFS =「,」'NR> 1 {if($ 3 ==「dogs」&& $ 5 <20)$ 6 = 20- $ 5; if($ 3 =='dogs'&& $ 5> 20)$ 6 = 0;} 1'' – 2014-10-06 03:55:31