忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
123下一页
最近访问板块 发新帖
查看: 2250 | 回复: 20

[文本处理] 如何按照出生日期从小到大排序如下内容 [复制链接]

求职 : Linux运维
论坛徽章:
10
丑牛
日期:2013-11-22 14:59:41数据库技术版块每日发帖之星
日期:2016-08-13 06:20:0015-16赛季CBA联赛之山西
日期:2016-08-03 10:35:38数据库技术版块每日发帖之星
日期:2016-07-31 06:20:002016科比退役纪念章
日期:2016-06-27 14:08:14数据库技术版块每日发帖之星
日期:2016-06-02 06:20:0015-16赛季CBA联赛之广东
日期:2016-05-20 15:06:2215-16赛季CBA联赛之深圳
日期:2016-01-29 16:27:402015亚冠之阿尔艾因
日期:2015-09-08 16:35:3615-16赛季CBA联赛之北京
日期:2017-03-28 18:45:36
发表于 2018-04-11 12:17 |显示全部楼层
本帖最后由 夏寥寥 于 2018-04-12 09:10 编辑

1.文本中包含中文和空格,需要根据出生日期从小到大排序

文本内容:
  1. 1李依依140108201304089335
复制代码


2.我自己尝试用中文做分隔符,发现分隔出的域不是预想的那样,分隔出的不是出生日期,而是序号为单数的人的姓名。请求大神指教。
  1. awk -F '[u4e00-u9fa5]'  '{print $2}' sort.txt
复制代码





论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
发表于 2018-04-11 13:38 |显示全部楼层
本帖最后由 Windows19 于 2018-04-11 13:39 编辑

1李依山110108201304089335
2徐嘉齐110114201303125944
3张妙涵110108201306018629





楼主好像是要按这8个数字排序吧

论坛徽章:
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
发表于 2018-04-11 13:43 |显示全部楼层
本帖最后由 jason680 于 2018-04-11 14:47 编辑

回复 1# 夏寥寥

$ awk 'match($0,"([0-9]{5}.+)",m){a[substr(m[1],7,8)]=$0}END{t=asorti(a,b);for(n=1;n<=t;n+=1)print a[b[n]]}' file
18雷浩晖110112201209172055      
4孔睿  110108201210098636
21张季秋11010820121025861X
...
24程艺君110108201308268621  
25卜一涵371481201308292130
8赵庆庆110108201310010021


论坛徽章:
0
发表于 2018-04-11 13:43 |显示全部楼层
本帖最后由 本友会机友会摄友会 于 2018-04-11 14:01 编辑

去掉行尾空格 和 x,然后从后往前数即可。用键值对,更好。用日期型更好。
win,linux通用的ps代码:
  1. $a = '1李依山110108201304089335'
  2. $b = $a.trimend(' xX')[-12..-5] -join ‘’ #20130408
  3. $b

  4. $c = '1李依山110108201304089335X'
  5. $d = $c.trimend(' xX')[-12..-5] -join ‘’ #20130408
  6. $d
复制代码

求职 : Linux运维
论坛徽章:
10
丑牛
日期:2013-11-22 14:59:41数据库技术版块每日发帖之星
日期:2016-08-13 06:20:0015-16赛季CBA联赛之山西
日期:2016-08-03 10:35:38数据库技术版块每日发帖之星
日期:2016-07-31 06:20:002016科比退役纪念章
日期:2016-06-27 14:08:14数据库技术版块每日发帖之星
日期:2016-06-02 06:20:0015-16赛季CBA联赛之广东
日期:2016-05-20 15:06:2215-16赛季CBA联赛之深圳
日期:2016-01-29 16:27:402015亚冠之阿尔艾因
日期:2015-09-08 16:35:3615-16赛季CBA联赛之北京
日期:2017-03-28 18:45:36
发表于 2018-04-11 13:49 |显示全部楼层
回复 2# Windows19

对的!

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
发表于 2018-04-11 14:22 |显示全部楼层
回复 5# 夏寥寥
3楼jason680大哥就是你要的结果了

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
发表于 2018-04-11 14:24 |显示全部楼层
本帖最后由 1cpuer 于 2018-04-11 14:29 编辑

回复 1# 夏寥寥

# [ /home/soio/1bs/hello/Cc ] {2018-04-11 14:14:58}
: 1523427298:0;➜  awk '{print $2,$0}' 1sort1 | awk '{print gensub(/[^u4e00-u9fa5]/,"[&]","g")}'
[ ][ ][ ][ ][ ]1[�][�][�][�][�][�][�][�][�]110108201304089335
[ ][ ][ ][ ][ ]2[�][�][�][�][�][�][�][�][�]110114201303125944
[ ][ ][ ][ ][ ]3[�][�][�][�][�][�][�][�][�]110108201306018629
110108201210098636[ ][ ][ ][ ][ ]4[�][�][�][�][�][�][ ][ ]110108201210098636
[ ][ ][ ][ ][ ]5[�][�][�][�][�][�][�][�][�]110108201212259712
[ ][ ][ ][ ][ ]6[�][�][�][�][�][�][�][�][�]110101201305312071
[ ][ ][ ][ ][ ]7[�][�][�][�][�][�][�][�][�]110108201211161481


sed 's/[0-9]\{17\}[0-9 X]/[&]/g' 1sort1|awk -F'[' '{print $2,$1}' | sort

论坛徽章:
19
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:33黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:0915-16赛季CBA联赛之八一
日期:2018-07-03 16:56:4615-16赛季CBA联赛之深圳
日期:2018-06-15 14:59:3715-16赛季CBA联赛之青岛
日期:2018-06-08 13:45:2815-16赛季CBA联赛之同曦
日期:2018-06-04 19:42:2015-16赛季CBA联赛之山东
日期:2018-05-30 12:44:59CU十四周年纪念徽章
日期:2018-05-15 11:36:3815-16赛季CBA联赛之广东
日期:2018-05-14 09:52:42
发表于 2018-04-11 14:26 |显示全部楼层
回复 1# 夏寥寥


<<<awk4.0+
  1. awk -F "" '{gsub(" ","");a=substr($0,NF-11,8);b[a]=$0}END{PROCINFO["sorted_in"]="@ind_num_asc";for(i in b){print b[i]}}' file
复制代码

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
发表于 2018-04-11 14:56 |显示全部楼层
回复 8# wh7211

大哥  借题请问一下  从大到小排又怎样的呢

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
发表于 2018-04-11 15:10 |显示全部楼层
回复 8# wh7211

可以解释下这个吗
awk -F "" '{gsub(" ","");a=substr($0,NF-11,8);

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

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP