基于唯一列的行求和 awk

2023-12-19

我正在寻找一种更优雅的方法来执行此操作(对于超过 100 列):

awk '{a[$1]+=$4}{b[$1]+=$5}{c[$1]+=$6}{d[$1]+=$7}{e[$1]+=$8}{f[$1]+=$9}{g[$1]+=$10}END{for(i in a) print i,a[i],b[i],c[i],d[i],e[i],f[i],g[i]}'

这是输入:

 a1 1   1   2   2
 a2 2   5   3   7
 a2 2   3   3   8
 a3 1   4   6   1
 a3 1   7   9   4
 a3 1   2   4   2

和输出:

 a1 1 1 2 2
 a2 4 8 6 15
 a3 3 13 19 7

谢谢 :)


我把一行行分成几行,以便于阅读。

awk '{n[$1];for(i=2;i<=NF;i++)a[$1,i]+=$i}
    END{for(x in n){
        printf "%s ", x
        for(y=2;y<=NF;y++)printf "%s%s", a[x,y],(y==NF?ORS:FS)
        }
    }' file

这个 awk 命令应该适用于您的 100 列文件。

用你的文件进行测试:

kent$  cat f
a1 1   1   2   2
a2 2   5   3   7
a2 2   3   3   8
a3 1   4   6   1
a3 1   7   9   4
a3 1   2   4   2

kent$  awk '{n[$1];for(i=2;i<=NF;i++)a[$1,i]+=$i}END{for(x in n){printf "%s ", x;for(y=2;y<=NF;y++)printf "%s%s", a[x,y],(y==NF?ORS:OFS)}}' f
a1 1 1 2 2
a2 4 8 6 15
a3 3 13 19 7
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于唯一列的行求和 awk 的相关文章

随机推荐

  • xsl 在 xml 中定义

    我在 movie xml 中的前几行如下
  • 当子文件夹具有相同名称时,Airflow Packaged Dags(压缩)会发生冲突

    我们正在建立一个 Airflow 框架 多个数据科学家团队可以在其中协调他们的数据处理管道 我们开发了一个 Python 代码库来帮助他们实现 DAG 其中包括各种包和模块中的函数和类 还有 Operator 子类 每个团队都会将自己的 D
  • 语言验证消息

    我在用ASP NET MVC 5 我正在尝试获取消息ValidationMessageFor法语 xxx 字段为必填项 gt Le champ xxx est manquant 我已经在两台服务器上部署了我的网站 Windows Serve
  • 如何检测和调试多线程问题?

    这是后续这个问题 https stackoverflow com questions 493311 how to write safe correct multi threaded code in net 我在这一点上没有得到任何意见 这是
  • 使用 websocket 处理连接丢失

    我最近设置了一个工作正常的本地 WebSocket 服务器 但是我在理解应该如何处理客户端或服务器都不是故意启动的连接突然丢失时遇到了一些麻烦 即 服务器断电 以太网电缆拔出等 我需要客户端知道连接是否在 10 秒内丢失 客户端 连接很简单
  • 如何将h1和h2写在同一行?

    我有一个页面 我只想制作一个标题 该标头是一个 h1 文本左对齐 并且 h2 右对齐 在同一行 在它们之后 hr 到目前为止 我的代码如下所示 如果您测试它 您会发现它是错误的 h1 align left Title h1 h2 align
  • 如何以整数形式反转 RGB 颜色?

    给定 32 位无符号整数形式的 RGB 颜色 例如 0xFF00FF 如何反转它 获得负颜色 而不使用位移操作提取其各个分量 我想知道是否可以仅使用按位运算 AND OR XOR 更准确地说 使用最少指令数的算法是什么 我觉得就是这么简单
  • 如何从 JSESSIONID 加载 Java HttpSession?

    我想获得JavaHttpSession通过 JSESSIONID 是否可以 如果是 怎么办 您基本上需要手动将它们全部收集在一个Map https docs oracle com en java javase 17 docs api jav
  • android应用程序可以检查手机的版本吗

    我想编写一个使用动态壁纸的应用程序 仅版本 7 及更高版本支持此功能 应用程序是否可以检查 Android 手机的版本 并根据版本运行不同的代码 例如使用动态壁纸或静态背景 你有一个代码示例吗 这需要特殊权限吗 假设您需要 Android
  • 使用pauseOnConnect 通过 https 传递连接

    我正在使用pauseOnConnect选项开启net createServer 允许我将连接传递给我使用集群创建的工作人员 server net createServer pauseOnConnect true function conne
  • 使用Spring boot和javafx会消耗大量内存吗?

    我愿意在我的 JavaFX 应用程序中使用 Spring boot 技术 以获得其依赖注入的优势 但我想知道对内存的影响 因为你知道任何带有 组件 符号的类都会被加载到 MetaSpace 因为 Spring boot 会从中创建一个静态对
  • Laravel 的 5.3 通行证和 api 路线

    我正在使用 Laravel Framework 版本 5 3 9 新下载的内容没有通过作曲家添加任何内容 除了 laravel passport 1 0 我做了中建议的所有事情docs https laravel com docs mast
  • Visual Studio 2010 代码覆盖率 - 找不到由检测实用程序创建的备份文件

    我尝试在 VS 2010 中运行代码覆盖率 但遇到以下错误 不生成覆盖范围信息 代码覆盖率就地检测 无法完全备份二进制文件 MyProject dll 找不到由检测实用程序创建的备份文件 MyProject dll orig 检查为测试运行
  • 使用 PHP/MySQL 比较标签组以查找相似性/分数

    如何将一组标签与数据库中另一个帖子的标签进行比较以获取相关帖子 我想做的是将帖子上的一组标签与另一个帖子的标签进行比较 但不是每个标签单独 假设您想根据帖子中的标签获取真正相关的项目 然后从最相关到 最不相关的顺序显示它们 每次都必须显示三
  • 如何在 C# 中发出 HTTP 请求 [重复]

    这个问题在这里已经有答案了 我如何在 Windows 中用 C 发出卷曲请求或 我想使用此参数发出网络请求 它应该收到有效的响应 request curl http www1 bloomingdales com api store v2 s
  • Spark阶段交换的意义

    谁能解释一下我的 Spark DAG 中的 Spark 阶段中交换的含义 我的大部分阶段要么以交换开始 要么以交换结束 1 WholeStageCodeGen gt 交换 2 交换 gt WholeStageCodeGen gt SortA
  • 离散傅里叶变换:如何正确使用 fftshift 和 fft

    我想对 numpy 数组 Y 进行数值计算 为了进行测试 我使用高斯函数 Y exp x 2 符号 傅立叶变换为 Y 常数 exp k 2 4 import numpy X numpy arange 100 100 Y numpy exp
  • 如何重新启动流星

    If I close the browser tab and press Ctrl Z to exit the current running meteor process how do I start meteor again to re
  • 如何在 SQL Server 2008 中将图像字段中的 varbinary 值更新为 null?

    我上传了一张图像并存储到数据库的图像字段中 该图像存储为 0xFFD8FFE 当我尝试用 null 更新上面的内容时 出现了一个异常 数据类型 image 和 varbinary max 在等于运算符中不兼容 我想将上面的值更改为空 只需使
  • 基于唯一列的行求和 awk

    我正在寻找一种更优雅的方法来执行此操作 对于超过 100 列 awk a 1 4 b 1 5 c 1 6 d 1 7 e 1 8 f 1 9 g 1 10 END for i in a print i a i b i c i d i e i