免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1662 | 回复: 10

[日期时间] 请教一下,怎么将文件每行的时间进行排序 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之广夏
日期:2016-04-12 15:53:16
发表于 2016-02-26 17:24 |显示全部楼层
,12:13:57,a,b,c
12:14:11,12:14:18,a,e,a
,12:14:02,a,e,d
12:14:13,12:16:56,a,e,v
12:17:25,12:17:32,a,d,h
12:14:02,12:14:11,a,s,u
,12:14:14,a,z,u
12:14:29,12:14:36,a,g,d


求教各位大神!
第一个逗号前面为开始的时间,如果没有则为空
第二个逗号为结束的时间,如果没有则为空


现有两个问题:
1)怎么先对开始的时间进行排序,再对结束的时间进行排序
2)假如格式是这样的呢?怎么进行排序
2016-01-14 12:14:39,2016-01-14 12:15:07,a,f,x
2016-01-14 12:13:52,2016-01-14 12:14:21,f,i,u
2016-01-14 12:13:22,2016-01-14 12:14:50,s,u,f
2016-01-14 12:14:52,2016-01-14 12:13:20,x,h,d
2016-01-14 12:13:12,2016-01-14 12:18:20,t,n,c
2016-01-14 12:14:11,2016-01-14 12:14:10,p,n,g

多谢各位大侠了~~

论坛徽章:
1
15-16赛季CBA联赛之广夏
日期:2016-04-12 15:53:16
发表于 2016-02-26 17:25 |显示全部楼层
然后就是修改完成的怎么输出到原文件

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
发表于 2016-02-27 09:28 |显示全部楼层
  1. sort -t',' file
  2. sort -k2 -t',' file
复制代码

论坛徽章:
1
15-16赛季CBA联赛之广夏
日期:2016-04-12 15:53:16
发表于 2016-02-28 21:21 |显示全部楼层
回复 3# cao627



谢谢~
能不能一行就搞定,然后重新输出到原文件

   

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
发表于 2016-02-29 16:43 |显示全部楼层
1)怎么先对开始的时间进行排序,再对结束的时间进行排序

你这句话的意思是:
1:按开始时间这一列对行进行排序得到一种结果,按结束时间这列对行进行排序得到另一种结果,即用两种不同的排序得到两种结果? 还是
2:先按开始时间排序,如果有开始时间相同的行,这些行再按虑结束时间排序。即用一种排序得到一种结果。

如果是1的话只能是两条命令。
如果是2的话:

sort -k2 -k3  -t',' file

论坛徽章:
1
15-16赛季CBA联赛之广夏
日期:2016-04-12 15:53:16
发表于 2016-03-01 20:16 |显示全部楼层
回复 5# cao627


额。。。。。我写了歧义了

我的意思是先对第一列经行排序,然后相同的再第二列进行排序(就是将相同的通过第二列,安插到第二列中)


试了你的貌似不成功

   

论坛徽章:
130
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2016-03-01 20:21 |显示全部楼层
回复 6# _lpq

easy way by sort

$ cat FILE
2016-01-14 12:14:39,2016-01-14 12:15:07,a,f,x
2016-01-14 12:13:52,2016-01-14 12:14:21,f,i,u
2016-01-14 12:13:22,2016-01-14 12:14:50,s,u,f
2016-01-14 12:14:52,2016-01-14 12:13:20,x,h,d
2016-01-14 12:13:12,2016-01-14 12:18:20,t,n,c
2016-01-14 12:14:11,2016-01-14 12:14:10,p,n,g

$ sort FILE
2016-01-14 12:13:12,2016-01-14 12:18:20,t,n,c
2016-01-14 12:13:22,2016-01-14 12:14:50,s,u,f
2016-01-14 12:13:52,2016-01-14 12:14:21,f,i,u
2016-01-14 12:14:11,2016-01-14 12:14:10,p,n,g
2016-01-14 12:14:39,2016-01-14 12:15:07,a,f,x
2016-01-14 12:14:52,2016-01-14 12:13:20,x,h,d

   

论坛徽章:
1
15-16赛季CBA联赛之广夏
日期:2016-04-12 15:53:16
发表于 2016-03-01 21:08 |显示全部楼层
回复 7# jason680


    谢谢大神哈!,

论坛徽章:
1
15-16赛季CBA联赛之广夏
日期:2016-04-12 15:53:16
发表于 2016-03-01 22:08 |显示全部楼层
回复 7# jason680
我现在遇到的问题是:


,12:13:57,a,1,c
12:14:11,12:14:18,a,3,a
,12:14:02,a,6,d
12:14:13,12:16:56,a,4,v
12:15:31,,a,2,h
12:17:25,12:17:32,a,2,h
12:14:02,12:14:11,a,4,u
,12:14:14,a,9,u
12:14:13,,i,8,s
12:14:29,12:14:36,a,3,d

就是先对第二列排 用  sort -k2 -t',' file
运行结果:

12:15:31,,a,2,h
12:14:13,,i,8,s
,12:13:57,a,1,c
,12:14:02,a,6,d
12:14:02,12:14:11,a,4,u
,12:14:14,a,9,u
12:14:11,12:14:18,a,3,a
12:14:29,12:14:36,a,3,d
12:14:13,12:16:56,a,4,v
12:17:25,12:17:32,a,2,h

我希望得到的结果是:

,12:13:57,a,1,c
,12:14:02,a,6,d
12:14:02,12:14:11,a,4,u
12:14:13,,i,8,s
,12:14:14,a,9,u
12:14:11,12:14:18,a,3,a
12:14:29,12:14:36,a,3,d
12:15:31,,a,2,h
12:14:13,12:16:56,a,4,v
12:17:25,12:17:32,a,2,h

就是先对第二列排序,然后有第二列为空值是会运行到前面,
12:15:31,,a,2,h
12:14:13,,i,8,s

我希望的是将这两列值与第一列值比较
若第一列有比   第一列值 <12:15:31 < 第一列值,则插入其中
像这样
12:14:29,12:14:36,a,3,d
12:15:31,,a,2,h
12:14:13,12:16:56,a,4,v

谢谢哈~



   

论坛徽章:
130
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2016-03-02 10:33 |显示全部楼层
回复 9# _lpq

here you are

$ awk -F, '{if($2=="")a[$1]=$0;else b[$2]=$0}END{bt=asorti(b,bs);at=asorti(a,as);for(an=bn=1;bn<=bt;++bn){while(as[an]<bs[bn]&&an<=at)print a[as[an++]];print b[bs[bn]]}}' FILE
,12:13:57,a,1,c
,12:14:02,a,6,d
12:14:02,12:14:11,a,4,u
12:14:13,,i,8,s
,12:14:14,a,9,u
12:14:11,12:14:18,a,3,a
12:14:29,12:14:36,a,3,d
12:15:31,,a,2,h
12:14:13,12:16:56,a,4,v
12:17:25,12:17:32,a,2,h

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:help@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP