我有一个制表符分隔文件(无标题),我想获取第 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 场之间的差异添加到sumEND{print sum}:读取所有行后,打印suminput_file: 将输入文件名指定awk为参数;拯救一只猫。