【发布时间】:2014-11-12 21:57:52
【问题描述】:
我有一个 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等等……
我怎样才能做到这一点?
【问题讨论】:
-
请在实际问题中添加一些示例输入和示例输出,而不是提供链接。
-
第一个命令有效,但您没有告诉它反转排序顺序。第二个失败,因为您没有将
,括在引号中
标签: linux