加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 在Unix中排序日期/时间

发布时间:2020-12-15 23:26:58 所属栏目:大数据 来源:网络整理
导读:输入 2012-07-24 10:05:08 AM2012-07-26 10:13:58 AM2012-07-24 10:13:58 AM2012-07-24 10:57:50 AM2012-07-24 11:15:03 AM2012-07-24 11:26:08 PM2012-07-25 11:26:08 PM 期望的输出 2012-07-24 10:05:08 AM2012-07-24 10:13:58 AM2012-07-24 10:57:50 AM20
输入

2012-07-24 10:05:08 AM
2012-07-26 10:13:58 AM
2012-07-24 10:13:58 AM
2012-07-24 10:57:50 AM
2012-07-24 11:15:03 AM
2012-07-24 11:26:08 PM
2012-07-25 11:26:08 PM

期望的输出

2012-07-24 10:05:08 AM
2012-07-24 10:13:58 AM
2012-07-24 10:57:50 AM
2012-07-24 11:15:03 AM
2012-07-24 11:26:08 PM
2012-07-25 11:26:08 PM
2012-07-26 10:13:58 AM

我试过的代码

sort -t ":" -k 1 -k 2 -k 3 Input.txt | sort -t " " -k 3

但我没有得到理想的输出.

谁能提出任何建议?

我写了一段代码……但问题仍然存在……

sed 's/ 12:/00:/g' Input.txt | sort -k 1,1 -k 3,3 -k 2,2 | sed 's/00:/12:/g'

首先改变上午12:43:01到00:43:01 ….然后应用sort命令.

解决方法

转换为大纪元秒进行排序

假设您的数据存储在/ tmp / foo中,您可以将时间戳转换为具有GNU日期的数字可排序格式.例如:

date -f /tmp/foo '+%s' | sort |
while read; do
    date -d "@$REPLY" "+%F %I:%M:%S %p"
done

这应该在所有情况下正确处理排序,特别是在所有AM时间应该在同一日期的所有PM时间之前的情况下.例如,上午12:01现在在晚上10:00之前列出.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读