awk - 求和列sh

时间:2015-07-18 14:48:34

标签: unix awk sh

我需要评估以下文件

USER1 256     375     374     463     382     0       0       502
USER2 356     499     369     381     525     0       0       436
USER2 196     375     250     293     450     0       0       458
USER3 16      86      102     0       0       0       0       0
USER4 343     459     310     446     488     0       0       350
USER5 13      246     102     211     190     0       0       119
...
USERn

...其中行数必须是动态的(如果可能的列数),通过这种方式:

  
      
  • 如果列中的值的总和> 0其他错误
  •   
  • 第0列未评估
  •   

并获得以下结果:

n2  true
n3  true
n4  true
n5  true
n6  true
n7  false
n8  false
n9  true

提前致谢

1 个答案:

答案 0 :(得分:3)

#!/usr/bin/awk -f
{
  for (z=2; z<=NF; z++)
    y[z] += $z
}
END {
  for (z in y)
    print "n" z, y[z] ? "true" : "false"
}