AWK:打印一个字段中具有最大值的所有行每个其他字段,包括具有最大值的相同行

2024-02-10

我试图在每列 1 的第 2 列中保留具有最高值的行,包括具有最大值的相同行,如下面所需的输出。

Data is

a   55
a   66
a   130
b   88
b   99
b   99
c   110
c   130
c   130

期望的输出是

a   130
b   99
b   99
c   130
c   130

我可以从这个网站找到很好的答案,但不完全适合当前的问题。

awk '{ max=(max>$2?max:$2); arr[$2]=(arr[$2]?arr[$2] ORS:"")$0 } END{ print arr[max] }' file

产生包含相同行的输出,但最大值来自所有行,而不是每列 1。

a       130
c       130
c       130
awk '$2>max[$1] {max[$1]=$2 ; row[$1]=$0} END{for (i in row) print row[i]}' file

输出包括每列 1 的最大值,但不包括具有最大值的相同行。

a       130
b       99
c       130

您能帮我以所需的方式修剪数据吗?甚至上面的所有代码都是从您在本站的问题和答案中获得的。感谢!!非常感谢您的提前帮助!


我过去曾使用过这种方法:

awk 'NR==FNR{if($2 > max[$1]){max[$1]=$2}; next} max[$1] == $2' test.txt test.txt
a   130
b   99
b   99
c   130
c   130

这需要您两次传入同一个文件(即 awk '...' test.txt test.txt),因此它并不理想,但希望它能提供所需的输出和实际数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWK:打印一个字段中具有最大值的所有行每个其他字段,包括具有最大值的相同行 的相关文章

  • 比较不同文件中的列并打印那些不匹配的列

    我有两个文件 file1 和 file2 我想将 file1 的几列 1 2 3 和 4 与 file2 的几列 1 2 3 和 4 进行比较 并打印 file2 中与 file1 中任何行都不匹配的那些行 E g file1 aaa bb
  • 如何保留awk中字段之间的原始空格?

    当处理输入时awk 有时我想编辑其中一个字段 而不触及其他任何内容 考虑一下 ls l awk 1 total 88 rw r r 1 jack jack 8 Jun 19 2013 qunit 1 11 0 css rw r r 1 ja
  • awk 中的并行处理?

    awk 逐行处理文件 假设每行操作不依赖于其他行 有没有办法让 awk 一次并行处理多行 是否有其他文本处理工具可以自动利用并行性并更快地处理数据 唯一尝试提供 awk 并行实现的 awk 实现是并行 awk http code googl
  • 将 CSV 文件拆分为较小的文件但保留标题?

    我有一个巨大的 CSV 文件 有 100 万行 我想知道是否有一种方法可以将此文件拆分为较小的文件 但保留所有文件的第一行 CSV 标题 它似乎split速度非常快 但也非常有限 您不能向文件名添加后缀 例如 csv split l1100
  • 查找重复邮寄地址的策略

    我正在尝试想出一种根据相似度分数查找重复地址的方法 考虑这些重复的地址 addr 1 3 FAIRMONT LINK SOUTH addr 2 3 FAIRMONT LINK S addr 3 5703 48TH AVE adrr 4 57
  • 如何从 Linux 和 Solaris 上的挂载中提取 NFS 信息?

    我需要使用提取 NFS 挂载信息mount在 Linux RHEL 4 5 和 Solaris Solaris 10 系统上 由于这是 SSH 命令的一部分 因此提取需要在一行中进行 不幸的是 Linux 和 Solaris 在该行的不同部
  • awk 计数频率

    嘿 我想统计 awk 中某一列的数据量 一个示例数据集是 2 5 8 1 3 7 8 5 9我想计算第二列中 5 的出现频率 这就是我尝试过的方法 但没有成功 total 0 for i 1 i lt NF i if i 2 if i 5
  • 根据.Net中的字段反序列化json(C#)

    我正在编写一个应用程序 它可以获取Json像这样的对象列表 ObjectType apple ObjectSize 35 ObjectCost 4 ObjectTaste good ObjectColor golden ObjectType
  • 如何使用AWK从文件中连续输出行

    我有一个多行文件 我想连续输出文件的某些行 比如第一次 从第1行打印到第5行 下次 打印第2行到第6行 依此类推 我发现 AWK 是一个非常有用的函数 我尝试自己编写代码 但它什么也没输出 以下是我的代码 bin bash for n in
  • Java 数组中的最小值和最大值

    我的代码没有给出错误 但它没有显示最小值和最大值 代码是 Scanner input new Scanner System in int array new int 10 System out println Enter the numbe
  • 我如何(或可以)在多个列上选择 DISTINCT?

    我需要从表中检索所有行 其中两列的组合都不同 因此 我希望同一天没有任何其他销售的所有销售都以相同的价格进行 基于日期和价格的唯一销售将更新为活动状态 所以我在想 UPDATE sales SET status ACTIVE WHERE i
  • 从列表中删除重复元素

    我开发了一个数组列表 ArrayList
  • 在重复键上仅更新 Null 或空值

    我有一个 mysql 查询来合并主键 IMO 上的两个表 查询工作正常 但我遇到的问题是在重复键更新时 我只想更新 wp second 表的那些没有值的字段 简而言之 在重复键上 wp second 值仅应在 null 或空时更新 这是我到
  • SQL:列出多个连接语句中的重复记录?

    你好 以下查询在连接多个表后返回所有员工 select e from dbo EMP e join dbo HREMP a on a ID e ID join dbo LOGO c on c EMPID e id join dbo LOGO
  • 按 A 列删除重复项,保留 B 列中具有最高值的行

    我有一个数据框 A 列中有重复值 我想删除重复项 保留 B 列中具有最高值的行 So this A B 1 10 1 20 2 30 2 40 3 10 应该变成这样 A B 1 20 2 40 3 10 我猜想可能有一种简单的方法可以做到
  • 两个日期/时间字段之间的差异 - Lotus Notes

    我有三个可编辑的日期 时间字段 前两个是 field1 和 field2 样式 日历 时间控件 两者都显示时间 小时和分钟 例如 15 51 第三个字段也是 可编辑的 我想显示 field1 和 field2 之间的区别 例如 如果 fie
  • django REST框架多源领域

    假设我的 models py 中有这些 models py class Theme models Model An theme is an asset of multiple levels adventure models ForeignK
  • 如何让“grep -zoP”单独显示每个匹配项?

    我有一个此表格的文件 X this is the first match blabla X this is the second match and here we have some fluff 我想提取 X 之后和相同标记之间出现的所有
  • codeigniter,获取mysql表列中的最大值

    我正在使用 codeigniter 2 我有一个 mysql 表列 存储每个学生所用的时间 例如 1 2327 0 6547 1 9876 我想获得最大值 值该列 这是我的代码 this gt db gt select max time t
  • awk/Unix 分组依据

    有这个文本文件 name age joe 42 jim 20 bob 15 mike 24 mike 15 mike 54 bob 21 试图得到这个 计数 joe 1 jim 1 bob 2 mike 3 Thanks awk F NR

随机推荐