我有一个制表符分隔文件(无标题),我想获取第 3 列和第 2 列的差异,然后将它们加在一起。
IE,
col1\tcol2\tcol3\tcol4
hi\t10\t100\t0.4
bye\t150\t400\t5.6
结果将是:(100-10)+(400-150)=340
我将如何使用 awk 进行这样的操作?
谢谢。
awk '{ total += $3 - $2 } END { print total }' file
干得好:
awk 'BEGIN{FS="\t"} {sum+=($3-$2)} END{print sum}' input_file
解释:
BEGIN{FS="\t"}
:在我们阅读任何行之前,将输入分隔符设置为显式使用制表符(FS
代表字段分隔符),以防您的某个字段有空格。默认情况下awk
使用制表符和空格作为FS
.{sum+=($3-$2)}
:对于读取的每一行,将第 3 到第 2 场之间的差异添加到sum
END{print sum}
:读取所有行后,打印sum
input_file
: 将输入文件名指定awk
为参数;拯救一只猫。