2012-12-11 56 views
1

我有一個製表符分隔文件(無標題),我想採取第3列和第2列的區別,然後將它們添加到一起。awk linux差異並添加製表符分隔的列文件

即,

col1\tcol2\tcol3\tcol4 
hi\t10\t100\t0.4 
bye\t150\t400\t5.6 

其結果將是:(100-10)+(400-150)= 340

如何將我使用AWK這樣操作的一個行?

謝謝。

回答

3
awk '{ total += $3 - $2 } END { print total }' file 
1

在這裏你去:

awk 'BEGIN{FS="\t"} {sum+=($3-$2)} END{print sum}' input_file 

說明:

  • BEGIN{FS="\t"}:之前我們看到任何線路,設置輸入分隔符使用顯式標籤(FS代表字段分隔符) ,如果你的一個領域有空間。默認情況下,awk使用製表符和空格作爲FS
  • {sum+=($3-$2)}:對於每一行的讀取,到第二場第三之間添加差sum
  • END{print sum}:一旦所有的行被閱讀,打印sum
  • input_file:指定輸入文件名awk作爲參數;保存一隻貓。
相關問題