排序命令在 unix 中无法正常工作以对 csv 文件进行排序

2023-12-09

我有一个 csv 文件,需要根据时间戳进行排序。它是 csv 中的第三列,我使用以下命令进行排序:

awk 'NR<2{print $_;next}{ print $_ | "sort -t, -k3.8,3.11nr -k3.1,3.3rM -k3.4rd" }' 

当年份为单一年份时,此命令可以正确排序,但对于存在多个年份的大数据,它将较旧的数据放在前面或放在 csv 的某个位置之间。示例如下:

data2,Send for Translation To CTM,Dec 30 2013 02:22
data1,Send for Translation To CTM,Dec 30 2013 02:20
data1,Send for Translation To CTM,Sep 30 2014 03:22
data2,Send for Translation To CTM,Oct 30 2014 03:21

我需要排列具有最新时间戳的数据,年份应按以下顺序排列:2014年、2013年、2012年等等......

我怎样才能实现这个目标?


以下应该有效

 awk 'NR<2{print $_;next}{ print $_ | "sort -t, -k3.8,3.11rn -k3.1,3.3rM -k3.5,3.6rn -k3.12rd" }'

“awk”片段将除 header 之外的所有行传递给排序命令。 键的顺序在这里很重要:

k3.8,3.11rn提取列的年份部分并反向排序

k3.1,3.3rM提取第三列中的前 3 个字符进行每月反向排序,其余的我们进行反向字典排序

k3.5,3.6rn提取日期并反向排序,最后我们对时间执行相同的操作

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

排序命令在 unix 中无法正常工作以对 csv 文件进行排序 的相关文章

随机推荐

  • C : typedef 结构名称 {...}; VS typedef struct{...} 名称;

    正如标题所说 我有这样的代码 typedef struct Book int id char title 256 char summary 2048 int numberOfAuthors struct Author authors typ
  • 删除重复项,保留最后一个条目——优化

    我正在开发一个宏 它将遍历电子表格并根据两列 Q 列和 D 列 中分别提供的两个条件删除重复的条目 行 这是我所拥有的 我在一个小数据集上测试了它 它是slow Sub RemoveDupesKeepLast dim i As Intege
  • 在编译时设置属性而不知道目标类型

    我想在编译时不知道对象类型的情况下设置对象的属性值 我希望它很快 即不是每次都使用反射 我知道属性名称和类型 最快的方法 据我所知 是使用委托 这就是我到目前为止所拥有的 class User this is an example Assu
  • 并发和多线程有什么区别?

    并发和多线程有什么区别 并发只能在多核CPU上实现吗 有人能用例子解释一下吗 并发和多线程有什么区别 并发描述了进程运行的方式 它们要么是顺序的 一个接一个 要么是并发的 能够 同时 取得进展 尽管不一定在同一时刻 要么是并行的 它们同时发
  • git rebase——我的哈希值意外不匹配

    1 为什么我没有机会暂存我的提交片段 以便我可以在合并之前将它们分成不同的提交team 2 为什么rebase之前的hash不等于rebase之后的hash 我没有看到任何消息表明有一个被压扁的空白或其他东西 GIT work git lo
  • 多个电子邮件收件人的 XML 架构

    我需要一个示例 XSD 来支持新元素中的多个电子邮件收件人 我要求每个收件人的电子邮件地址位于不同的元素中 谁能帮我解释一下吗 Example
  • 如何检查这是目录路径还是任何文件名路径?

    by this 为什么 fopen any path name r 不给出 NULL 作为返回值 我知道在linux中目录和文件被认为是文件 所以当我在 fopen 中以读取模式给出任何目录路径或文件路径时 它不会给出 NULL 文件描述符
  • 如何合并具有相同标识符 R 的行?

    I have been searching a lot but I can t seem to find an answer for what I m looking for The rows were originally melted
  • 如何在ASP.NET中实现GZip压缩?

    我正在尝试为我的 asp net 页面 包括我的 CSS 和 JS 文件 实现 GZip 压缩 我尝试了以下代码 但它只压缩我的 aspx 页面 从YSlow HttpContext context HttpContext Current
  • 适用于具有两个类的元素的 CSS 选择器

    有没有一种方法可以根据设置为两个特定类的 class 属性的值来选择带有 CSS 的元素 例如 假设我有 3 个 div div class foo Hello Foo div div class foo bar Hello World d
  • NSSortDescriptor问题

    我正在制作一个通讯录应用程序 我从 AddressBook 中获取姓名并将其存储在核心数据中 并使用以下命令将姓名显示在表格上NSFetchedResultsController However出现的第一个索引和部分是 后跟字母 但我想像在
  • 如何从 web.config 引用程序集?

    我需要将对 System XML dll 程序集的引用添加到 web config 中 为了尝试解决问题 此处提到 扩展方法存在问题 IXmlLineInfo 我尝试将以下行添加到 程序集 部分
  • Vue路由器参数对象类型在浏览器后退按钮上更改

    我正在传递一个参数论坛 它是 Vue js 中路由的对象 使用 vue router path forum forum name ForumView component ForumView props true 当我通过使用页面上的另一个链
  • 鼠标悬停时反转文本颜色

    我想在使用自定义 黑色 光标悬停黑色文本时反转黑色文本 这个GIF演示了效果 我无法用 CSS 和 JS 来实现这个工作 我猜是与混合混合模式 剪贴蒙版 伪元素和过滤器的一些组合 以下代码使光标变为白色 但不允许黑色文本变成白色 听起来很抽
  • 尝试抓住展开的线吗?斯威夫特 2.0、XCode 7

    我的代码中有以下展开行 UIApplication sharedApplication openURL NSURL string url 有时会出现这样的致命错误 致命错误 在解包可选值时意外发现 nil 我知道为什么有时会出现此错误 但是
  • 将解析结果自动串联成向量

    我编写了一些规则来将浮点数解析为两个 std vector 的浮点数 它们又存储在一个结构中 数据输入 object name01 v 1 5701 33 8087 0 3592 v 24 0119 0 0050 21 7439 a com
  • 在 WHERE 子句中应用条件过滤

    我在 SELECT 语句中加入几个表 如下所示 它具有三个参数 DECLARE Jobid INT 0 leadid INT 0 employeeid INT 0 SELECT e id l id j id e NAME l NAME j
  • 如何在 jsp 页面和 servlet 之间共享数据

    我有几个 jsp 页面和几个 servlet 我需要将一些信息保存到会话变量中 在jsp页面中我简单的引用 session get or session set 无需显式声明 HttpSession 对象 但在 servlet 中 适用正确
  • 如何防御性地编写代码以防止随机引用“表 0”和空值?

    我正在检索适量的数据并对其进行处理 没有什么独特的 起初奇怪的是 对于某些数据集 它工作得很好 而对于其他数据集 我收到以下错误消息 不过 这个错误消息似乎完全是胡言乱语 无论如何都是误导性的 因为失败集的数据并不比成功集的数据多 所以运行
  • 排序命令在 unix 中无法正常工作以对 csv 文件进行排序

    我有一个 csv 文件 需要根据时间戳进行排序 它是 csv 中的第三列 我使用以下命令进行排序 awk NR lt 2 print next print sort t k3 8 3 11nr k3 1 3 3rM k3 4rd 当年份为单