使用 awk 获取一列的最大值,另一列的每个唯一值

2023-12-29

所以我有一个文件,例如:

10 1 abc
10 2 def
10 3 ghi
20 4 elm
20 5 nop
20 6 qrs
30 3 tuv

我想为第一列的每个值获取第二列的最大值,即:

10 3 ghi
20 6 qrs
30 3 tuv

我该如何使用awk或者类似的unix命令?


您可以使用awk:

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

Output:

10 3 ghi
20 6 qrs
30 3 tuv

解释:

awk 命令使用关联数组max密钥为$1和价值为$2。每当我们遇到已经存储在该关联数组中的值时max,我们更新之前的条目并将整行存储在另一个关联数组中row用同一把钥匙。终于在END我们简单地迭代关联数组row并打印它。

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

使用 awk 获取一列的最大值,另一列的每个唯一值 的相关文章

  • 使用 Python 的 Popen 替换 Bash 风格的进程

    在 Bash 中 您可以轻松地将进程的输出重定向到临时文件描述符 并且所有这些都由 bash 自动处理 如下所示 mydaemon config file lt echo autostart True n daemonize True 或者
  • Linux Bash - 日期格式

    我的日期格式是 yyyy mm dd hh mm ss 如何检查我的输入 它应该是这样的 bin bash read p Date format yy mm dd HH MM SS input check date Y m d H M S
  • 比较两个文件的各自字段并以特定格式输出所需的内容

    我正在比较两个文件 food1 txt 文件并比较 food2 txt 文件 如下所示 cat food1 txt pizza 1ea chicken 5ea tooboo 4ea orange 2ea cat food2 txt pizz
  • bash 中的 SIGINT 和进程替换

    我发现如果我有类似的东西 usr bin env bash function abort politely echo Aborting politely sleep 5 touch stop trap abort politely SIGI
  • 为什么 bash for 循环出错?

    我正在尝试使用 for 循环运行以下代码 但出现语法错误 请帮忙 输入格式 输入的第一行包含一个整数N 表示整数的个数 下一行包含 N 个空格分隔的整数 它们构成数组 A read n sum 0 for i 1 i lt n i do r
  • 简单的awk命令问题(FS、OFS相关)

    我尝试重新组织包含以下内容的文件的格式 gt Humanl chr16 86430087 86430726 element 1 positive gt Humanl chr16 85620095 85621736 element 2 neg
  • 按顺时针顺序对四个点排序

    数组中的四个 2D 点 我需要按顺时针顺序对它们进行排序 我认为只需一次交换操作就可以完成 但我还没有能够正式放下这一点 编辑 在我的例子中 这四个点是凸多边形 编辑 这四个点是凸多边形的顶点 它们不必按顺序排列 如果你想从更数学的角度来看
  • 如何在shell脚本中扩展相对路径

    我正在编写一个脚本来使用 bash 在 linux 2 6 上设置环境变量 因此该脚本包含如下命令 export SRC DIR export LIBPATH SRC DIR lib 问题是 当我尝试 echo LIBPATH 时 它显示
  • Bash 脚本在 for 循环中使用 sed 和变量?

    我正在尝试编写一个 bash 脚本 该脚本需要一些变量 然后使用 grep 对给定文件搜索进行查找 替换 以获取包含该字符串的文件列表 我认为我遇到的问题是在 sed 中看到变量我不确定它可能是什么 if searchFiles a old
  • Swift3 中的数组排序

    在我的代码中 我有一个如下所示的结构 struct Object var name String var count Int 我现在正在创建一个包含 10 个对象的数组 这些对象具有随机名称和随机计数 有没有一个简单的方法a 按字母顺序对它
  • 当远程(Http)文件更改时如何执行操作?

    我想创建一个脚本 用于检查 URL 并在远程文件的 Last Modified 标头更改时执行操作 下载 解压缩 我考虑过使用curl 获取标头 但随后我必须将其存储在每个文件的某个位置并执行日期比较 有没有人对使用 大部分 标准 UNIX
  • ReactJS - 排序 - TypeError: 0 是只读的

    我试图在将对象映射到reactjs之前对其进行排序 但每次这样做时 我都会不断收到 TypeError 0 is read only 我注意到加载时 props 是空的 但即使当我试图检查数组的长度并且仅在它大于 0 时应用排序 或者当数组
  • 多线程归并排序,添加额外的线程

    我在java中的多线程合并排序算法中面临一个问题 我应该将代码修改为 3 4 5 6 7 8 线程合并排序 将原始数组划分为subArrays 目前它有2subArrays 如何将原始数组拆分为 3 4 5 6 7 8subArray是为了
  • awk 在Linux终端中输出类似表格或类似Excel的列?

    我做了一个长管子 最后是 awk print 5 t t 3 t 4 在 Linux 终端中 这些列用选项卡填充 第一列条目具有不同数量的字符 因此第二列结果并不完全垂直 怎样才能让桌子看起来更完美呢 尝试将结果通过管道传输到列 t awk
  • 使用 Bash 显示进度指示器(旋转器)[重复]

    这个问题在这里已经有答案了 使用仅 bash 的脚本 如何提供 bash 进度指示器 例如 当我从 bash 运行命令时 当该命令正在执行时 让用户知道某些事情仍在发生 在这个使用 SCP 的示例中 我演示了如何获取进程 ID pid 然后
  • sed:用下划线替换引号内的空格

    我有输入 例如 来自ifconfig run0 scan在 OpenBSD 上 它有一些用空格分隔的字段 但某些字段本身包含空格 幸运的是 包含空格的此类字段总是用引号引起来 我需要区分引号内的空格和分隔符空格 这个想法是用下划线替换引号内
  • 对指针列表进行排序

    我再次发现自己在 C 中的一些非常简单的任务上失败了 有时我希望我能从 Java 中的 OO 中学到所有知识 因为我的问题通常是从像 Java 一样思考开始的 无论如何 我有一个std list
  • 将对象字面量转换为排序数组

    我有一个对象文字 其中它的键的值是多个对象 并且内部对象的键之一被命名为 rank 并且具有浮点值 我想将对象文字转换为内部对象的数组 按 rank 的值排序 输入对象 452 bla 123 dff 233 rank 2 234 bla
  • PS1 定义中的条件 pwd

    我想显示当前工作目录如果我处于symlink比没有 到目前为止我已经 pwd P pwd echo 1 31m pwd P echo 1 32m pwd 将返回所需的输出 但它不能替代 w在命令提示符下 我尝试用反引号括起来 但这只会导致p
  • 使用sed插入文件内容

    我试图在给定模式之前插入文件内容 这是我的代码 sed i pattern i r scriptPath adapters default permissions xml manifestFile 它添加路径而不是文件的内容 有任何想法吗

随机推荐

  • 在过滤器管道上使用多个字段 |角4

    我想知道如何使用 Pipe 使用多个输入字段来过滤 json 对象 这是我到目前为止只有一个字段按名称过滤的代码 TS members name Carl country Brazil name John country United St
  • 使用 Jquery 进行多个过滤器

    我的页面中有一些 div 使用 php jquery 构建 我想根据它们的属性过滤它们 如果有超过 1 个属性过滤 则会缩小搜索范围 div 看起来像这样 div div title Mike Whatever content 1 div
  • 将 WWW 重定向到非 WWW,或者反之亦然? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我刚刚在我的网站上进行了搜索引擎优化
  • 使用 Google Sheets API,当我输入数据时,不支持添加和更新列格式

    所以 这实际上是一个基于我上次尝试的后续问题 如何使用 API 将列添加到 Google Sheets 并在同一调用中提供列的名称和类型 https stackoverflow com questions 57259399 how to a
  • 高效的java对象图序列化

    序列化 java 对象图的最佳方法是什么 我对序列化库的要求是 1 反序列化速度 2 size 尽可能小 小于java默认序列化中的大小 3 灵活性 基于注释的定义必须序列化的内容会很好 底层文件格式并不重要 我查看了Protocol Bu
  • 具有统一初始化的 Auto 扩展为意外类型

    考虑这个用 GCC 4 7 2 编译的短程序g std c 11 test cc include
  • 使用 Susnpot Gem 进行 Solr 搜索

    我目前正在使用 sunspot gem 在我的 Rails 应用程序中实现全文搜索 通过 Sunspot Solr 在我的网站上进行的查询正在运行并返回正确的结果 但是 当我尝试使用 Solr 管理页面进行查询时 我很难显示结果 使用查询字
  • 开发截图 Chrome 扩展

    我在这里看到了很多答案 但没有一个是我要找的 我想从 chrome 扩展程序中截取我第一次看到的屏幕的屏幕截图 而无需滚动页面 并 提醒 创建的文件base64路径 我拥有所有正确的权限 permissions activeTab tabs
  • 在编译输出中包含外部类型定义

    我正在用 TypeScript 编写一个库 cjol core 它具有 JavaScript 依赖性dep 其中没有 types包可用 相反 我写了一个自定义dep d ts文件 这使得我在开发库时所有的类型都能很好地工作 一切编译都很好b
  • 使用本地 npm 注册表在 Hyperledger Composer 中实例化 Chaincode

    我想在没有任何互联网连接的环境中实例化链代码 由于链码容器将发出npm install实例化后 我添加了一个名为的新容器npmregistry in the docker composer yml因此它与 Fabric 容器的其余部分一起配
  • 在 Windows 上安装 TkinterTreectrl

    我尝试在Windows7上安装TkTreectrl但没有成功 我下载了2 0 1版本的包解压并尝试运行setup py 那个人总是首先抱怨文件夹 TkTreectrl 不存在 这是错误的 因为该文件夹随下载一起提供 并且我在 TkTreec
  • recyclerView 拖放后在 Room 中保存新位置

    我在我的应用程序中实现了带有拖放功能的 recyclerView 一切工作正常 直到应用程序重新启动 应用程序不会保存 记住任何拖放更改 我试过了 使用 SharedPreference GSON 阅读其他 SQLite 答案 如下所示 拖
  • 如何在javascript或jquery中获取没有页面的当前url

    如何在没有 Javascript 或 jQuery 页面的情况下获取当前 URL 例如 如果网址是 http www abc com music pop aspx http www abc com music pop aspx 我想获得没有
  • 如何存储大字典?

    我有一本大字典 28 MB MyDict 存储在MyDict py file 如果我执行语句 from MyDict import MyDict A MemoryError抛出异常 我如何使用访问这本词典cPickle or shelve模
  • 命名参数可以与 Python 枚举一起使用吗?

    Example class Planet Enum MERCURY mass 3 303e 23 radius 2 4397e6 def init self mass radius self mass mass in kilograms s
  • ruby:关键字“in”的含义是什么

    当我第一次在 ruby 中找到关键字 in 时 我想也许我可以这样做 1 英寸 0 10 但看起来我不能这样使用它 然后我在 ruby lang org 中搜索它 并用 google 进行搜索 没有答案 ruby 中关键字 in 的含义是什
  • oracle中的序列创建

    我想在oracle中创建一个序列 其中列字段 Empid 的最大值必须是序列的最小值 下面是我在同一个 stackexchange 中找到的 create sequence mytemp seq start with v Startval
  • KILL 信号会立即退出进程吗?

    我正在开发一个使用的服务器代码fork 并执行创建子进程 孩子的PID在以下情况下被注册fork 成功并清理时CHILD信号已被捕获 如果服务器需要停止 所有程序都会被终止 最终会发出 KILL 信号 现在 这是通过迭代所有注册的 PID
  • 刷新 PopupWindow.dismiss 上的父片段

    我有一个 popupWindow 它修改 SQLight 表 该表在父窗口中加载微调器 我希望当我关闭 PopupWindow 时 使用新值刷新父窗口中的微调器 下面的代码显示了我创建一个侦听器的进度 该侦听器将检测 PopupWindow
  • 使用 awk 获取一列的最大值,另一列的每个唯一值

    所以我有一个文件 例如 10 1 abc 10 2 def 10 3 ghi 20 4 elm 20 5 nop 20 6 qrs 30 3 tuv 我想为第一列的每个值获取第二列的最大值 即 10 3 ghi 20 6 qrs 30 3