【发布时间】:2016-02-15 10:00:16
【问题描述】:
所以我对使用 linux 和脚本命令非常陌生,非常感谢您的帮助! 我有一个 1050 行 8 列的文件。示例:
anger 1 0 5 101 13 2 somesentenceofwords
anger 2 0 5 101 23 3 somesentenceofwords
anger 3 0 3 101 35 3 somesentenceofwords
anger 4 0 2 101 23 3 somesentenceofwords
arch 5 0 3 101 34 12 somesentenceofwords
arch 6 0 2 101 45 23 somesentenceofwords
arch 7 0 2 101 23 12 somesentenceofwords
hand 8 9 0 101 32 21 somesentenceofwords
hand 9 0 2 101 23 12 somesentenceofwords
我想要做的是,如果第一列对于 x 行数相同,则输出这些行的第 6 列的总和,然后将其除以行数(基本上是平均值)。
因此,在示例中,由于前 4 行都是愤怒的,我想在第 1 列的第 6 列中获得与愤怒的所有行相对应的数字的平均值。它将增加 13 + 23 + 35 + 23 / 4。然后它会为拱门做同样的事情,然后是手等等。
示例输出:
anger 23.5
arch 34
hand 27.5
我尝试这样做只是为了看看我是否可以单独执行此操作,其中每列都等于一个特定的字母字符串,但甚至无法使其正常工作。
$ awk '{if($1="anger"){sum+=$6} {print sum}}' filename
这可能吗?
【问题讨论】: