awk 打印每个类别的所有最小值

2023-12-03

想要打印基于的所有最小值1 美元和 3 美元组合。如果有两条或多条线路可用 对于具有 $1 和 $3 唯一组合的最小值,则需要打印所有行。例如,$1-"Abc" 的最小值 $3-"10" 出现两次,即 Abc,yyy,10,aaa 和 Abc,ttt,10,aaa。输入文件未按任何顺序排序。

输入.txt

Country,Desc,Amount,Details
Abc,xxx,20,aaa
Abc,yyy,10,aaa
ghi,ttt,25,ccc
Abc,zzz,35,aaa
def,xxx,30,bbb
Abc,ttt,10,aaa
def,yyy,20,bbb
ghi,yyy,25,ccc
def,zzz,45,bbb
ghi,xxx,35,ccc
ghi,zzz,50,ccc

想要打印输出以及标题行NR==1 , {print}

期望输出.txt

Country,Desc,Amount,Details
Abc,yyy,10,aaa
Abc,ttt,10,aaa
ghi,ttt,25,ccc
ghi,yyy,25,ccc
def,yyy,20,bbb

我首先使用两个命令来获得所需的输出sort输入文件基于 $1 和 $3 然后是第二个命令awk -F, '!seen[$1]++'寻找您的建议,以简单地喜欢一件衬里。


处理文件两次的 awk。第一次运行时,它为每个 $1 选择最小的 $3,第二次运行时,它打印最小的:

$ awk '
BEGIN{FS=","}                             # delimiter
NR==FNR {                                 # first run
    if ($1 in a==0 || $3<a[$1])
        a[$1]=$3
    next
}
$3==a[$1] # || FNR==1                     # if Country is data not header
' file file                               # uncomment the FNR==1
Country,Desc,Amount,Details
Abc,yyy,10,aaa
ghi,ttt,25,ccc
Abc,ttt,10,aaa
def,yyy,20,bbb
ghi,yyy,25,ccc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

awk 打印每个类别的所有最小值 的相关文章

随机推荐

  • 如何知道 RecyclerView 是否有足够的内容可以滚动?

    目前 我正在使用带有 LinearLayout Manager 的 RecyclerView 和作为 HeaderView 的 EditText 来过滤列表的内容 如果 RecyclerView 的内容小于 RecyclerView 本身
  • 从应用程序将照片上传到 Facebook 相册

    我用过 req perms gt publish stream status update 我收到的错误是 致命错误 未捕获的 CurlException 26 创建在 facebook php 第 589 行抛出的表单数据失败 我的上传代
  • 悬停无法与 jQuery 工具一起使用 - jQuery

    当我添加jQuery 工具到我的页面 链接上的悬停效果不起作用 没有它 它也能工作
  • 在 NSTextField 上按下 Enter 键时如何执行某些操作

    我正在使用 Swift 为 Mac 编写一个应用程序 我在 NSTextField 对象中写入一个字符串 我想将其保存在 txt 文件中 我希望用户按下 Enter 键后立即发生这种情况 我的方法 writeToFile 准备好了 我不知道
  • 解压缩来自 WebClient 的 gzip 响应

    有没有一种快速的方法来解压缩使用 WebClient DownloadString 方法下载的 gzip 响应 您对如何使用 WebClient 处理 gzip 响应有什么建议吗 最简单的方法是使用内置的自动减压与HttpWebReques
  • GNU JavaMail:没有地址提供者:rfc822

    使用 OpenJDK 1 7 0 和 GNU JavaMail 1 1 2 在实际消息发送调用期间 SMTPTransport send msg 有时候是这样的 javax mail NoSuchProviderException No p
  • 在 Apple 审核之前获取 App Store URL

    在应用程序的 beta 测试阶段 在 Apple 审核该应用程序之前 是否可以生成应用程序商店 URL 我想在我的应用程序中添加一个指向 App Store 中我的应用程序的链接 用户可以与朋友分享该链接 我希望在 Beta 测试阶段提供此
  • 更改MFC控件中背景和标题的颜色

    我想更改 MFC 应用程序中的编辑控件 静态控件和按钮控件的文本颜色和背景颜色 该控件位于一个CDialogEx对话 我尝试添加 OnCtlColor 使用 Visual Studio 中的向导 在 WM CTLCOLR 消息上 但我无法设
  • 在 WKWebView 中禁用 cookie

    是否可以在 WKWebView 中禁用 cookie 和本地存储 假设这是我的设置 我想添加一些禁用它们的内容 import UIKit import WebKit class ViewController UIViewController
  • Python pandas 不识别特殊字符

    我正在尝试使用df column name str count 在 python pandas 中 但我收到 错误 没有可重复的 对于常规字符 该方法有效 例如df column name str count a 工作正常 另外 符号也有问
  • 生成包含条件项的列表

    是否可以创建一个包含条件项的数组 my a 1 condition 2 no op 3 这样 no op 是一个函数 如果 condition是假的 然后我得到列表 1 3 but if condition是真的 我明白了 1 2 3 背景
  • 使用自定义 UIBezierPath 剪切图像

    我想知道是否有人可以为我指出这个问题的正确方向 我有一个用户创建的UIBezierPath有几个点是由用户触摸引起的 我可以使用这些在沼泽标准 UIView 上创建形状 myPath fill 功能 我理想中想做的是使用路径为 UIImag
  • MySQL 布尔全文搜索中的“显示除所有内容”

    使用 MySQL 布尔全文搜索 http dev mysql com doc refman 5 1 en fulltext boolean html 前导减号表示 这个词不能出现在任何 返回的行数 注意 运算符仅用于 排除其他行 与其他搜索
  • 使用Java/JSP打印支票

    我正在开发一个现有的 Java Web 应用程序 此特定应用程序中的 HTML CSS JS JSP Servlet 和 Java 类 该应用程序当前使用小程序来打印支票 我的老板最近来找我 告诉我在针对最新版本的 Java 测试支票打印时
  • 链接消费者 Java 8

    您好 我遇到以下问题 假设我们有对象 Account 该对象 Account 是不可变的 因此随着时间的推移 我们对其执行操作 实际上是将其转换为另一种状态 例如Account可以变成ClosedAccount或NewAccount等等 现
  • 在 Android Studio 中添加新模块时 java.lang.NoClassDefFoundError: android.support.v4.app.NavUtilsJB 错误

    添加新模块时出现奇怪的错误 https github com lomza android color picker 到我的项目 如果没有这个模块 项目运行正常 但是如果将此项目作为模块添加到我的主项目中并编译它 一切看起来都很好 但应用程序
  • 数据库速度优化:少表多行,还是多表少行?

    我有一个很大的疑问 让我们以任何公司订单的数据库为例 假设这家公司每月大约发出 2000 个订单 那么 每年大约 24K 个订单 他们不想删除任何订单 即使它已经有 5 年了 嘿 这是一个例子 数字并不意味着任何事物 就拥有良好的数据库查询
  • 将匿名函数传递给具有局部变量的命名函数时,Javascript 中的范围问题

    对这个标题感到抱歉 我不知道如何表达它 这是场景 我有一个构建元素的函数 buildSelect id cbFunc 在 buildSelect 中它执行以下操作 select attachEvent onchange cbFunc 我还有
  • 创建 PDF 的最佳 C# API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 您能推荐任何适用于 C 的
  • awk 打印每个类别的所有最小值

    想要打印基于的所有最小值1 美元和 3 美元组合 如果有两条或多条线路可用 对于具有 1 和 3 唯一组合的最小值 则需要打印所有行 例如 1 Abc 的最小值 3 10 出现两次 即 Abc yyy 10 aaa 和 Abc ttt 10