我将如何使用 bash 每 6 行取一个文件第一列的平均值?

和M

我有一个看起来像这样的文件:

[root@localhost ~]# cat output.txt
 0.0 709312 gnome-session-b dan
 0.7 3662292  \_ gnome-shell dan
 0.0 1157420  \_ gnome-softw dan
 0.0 903172 gnome-shell-cal dan
 0.0 286580 gnome-keyring-d dan
 0.0 709312 gnome-session-b dan
 0.7 3662292  \_ gnome-shell dan
 0.0 1157420  \_ gnome-softw dan
 0.0 903172 gnome-shell-cal dan
 0.0 286580 gnome-keyring-d dan
 0.0 709312 gnome-session-b dan
 0.7 3662292  \_ gnome-shell dan
 0.0 1157420  \_ gnome-softw dan
 0.0 903172 gnome-shell-cal dan
 0.0 286580 gnome-keyring-d dan
 0.0 709312 gnome-session-b dan
 0.7 3662292  \_ gnome-shell dan
 0.0 1157420  \_ gnome-softw dan
 0.0 903172 gnome-shell-cal dan
 0.0 286580 gnome-keyring-d dan
 0.0 709312 gnome-session-b dan
 0.7 3662292  \_ gnome-shell dan
 0.0 1157420  \_ gnome-softw dan
 0.0 903172 gnome-shell-cal dan
 0.0 286580 gnome-keyring-d dan
 0.0 709312 gnome-session-b dan
 0.7 3662292  \_ gnome-shell dan
 0.0 1157420  \_ gnome-softw dan
 0.0 903172 gnome-shell-cal dan
 0.0 286580 gnome-keyring-d dan

我将如何对此进行排序并计算前两列的平均值?我有一个运行 6 次的 for 循环来填充这些数据,因此它只需要每 6 行计算一次平均值。

查尔斯·达菲

Bash 是错误的工具——它不支持浮点数学。使用awk来代替:

awk '
# Initialization: Run once at startup
BEGIN {
  i=0;
  sum1=0;
  sum2=0;
}

# Run once per line
{
  sum1+=$1;
  sum2+=$2;
  if(++i >= 6) {
    print (sum1 / i) " " (sum2 / i);
    sum1=0;
    sum2=0;
    i=0;
  }
}

# Run once at the very end, for if our total number of lines was not divisible by 6
END {
  if(i > 0) {
    print (sum1 / i) " " (sum2 / i)
  }
}
'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何用bash获得每一行的最后一个单词

使用bash删除文件每一行开头的空格

如何读取包含两列数字的文件,然后返回每一列的平均值?

pandas:计算一列中每一行的numpy数组的平均值

计算文件中每一列的平均值

如何从datatimestamp列中每5分钟取数据帧中一列的平均值?

如何旋转并获取每一列的平均值到行

使用bash取一行中所有数字和文件中所有行的平均值

如何找到数据库中分组列的每一行的平均值

在Visual Studio 2019上使用带有C ++的OpenCV拍摄图片的每一列的颜色平均值

VBA:如何创建一个新数组,显示另一个数组中每一列的计算平均值?

如何获取包含缺失数字的每一行的平均值?

我需要在一个表中获取每3条记录的平均值,并在单独的表中更新列

如何在BASH中查找和替换文件每一行中的最后一个空格?

如何使用bash脚本求和两个csv文件中每一行的列值?

在R中,如何为数据帧中的每一行取不同数量的元素的平均值?

如何每9年获得一个组的平均值

在查询底部显示每一列的平均值

如何从CSV文件的每一行中删除第一列中的第一个字符?

PowerQuery:取多列中每一列的平均值

如何从文本文件中取出每一行并取平均值?

查找数据框中每一列的平均值,按列分组,不包括一个值

BASH - 使用 IF 循環(for)文件中的每一行

如何取每k个元素(小时)的列的平均值?

如何计算数据帧每一行中特定值的平均值?

如何计算R中每一行的数据帧块的累积平均值

提取 Pandas 中每一列的平均值

计算最后一行中每一列的平均值

我如何使用循环让它在 bash 中一次读取每一行?