免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2468 | 回复: 6
打印 上一主题 下一主题

[文本处理] 剔除排序 [复制链接]

论坛徽章:
6
摩羯座
日期:2013-12-27 09:45:04技术图书徽章
日期:2014-01-27 12:40:06辰龙
日期:2014-02-28 15:12:52巳蛇
日期:2014-03-21 17:06:27未羊
日期:2014-04-15 20:12:41黑曼巴
日期:2016-08-02 11:00:06
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-01-21 19:53 |只看该作者 |倒序浏览
本帖最后由 laliheyi 于 2014-01-21 20:00 编辑

各位,小弟有个排序需求求解
原始文件
  1. a|b|c|d|e|f
  2. |||||
  3. 1|2|3|4|5|6
  4. 12|3|4|5|6|7
  5. 10|3|4|5|6|7
复制代码
期望结果
  1. a|b|c|d|e|f
  2. |||||
  3. 1|2|3|4|5|6
  4. 10|3|4|5|6|7
  5. 12|3|4|5|6|7
复制代码
例子比较简单,下面说下需求,按照前5列排序(列分隔符|),排序是第1、2行不参与排序
解决
(head -2 ufile; sed -n '3,$p'  ufile | sort -t'|' -k1,5) >  urfile

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
2 [报告]
发表于 2014-01-21 19:58 |只看该作者
  1. awk 'NR<=2{print;next}{print |"sort -t\"|\" -k1,1n"}' file
复制代码

论坛徽章:
6
摩羯座
日期:2013-12-27 09:45:04技术图书徽章
日期:2014-01-27 12:40:06辰龙
日期:2014-02-28 15:12:52巳蛇
日期:2014-03-21 17:06:27未羊
日期:2014-04-15 20:12:41黑曼巴
日期:2016-08-02 11:00:06
3 [报告]
发表于 2014-01-21 20:06 |只看该作者
回复 2# reyleon
能解释一下是怎么运行的吗?
  1. {print |"sort -t\"|\" -k1,1n"}'
复制代码
是管道吗?

   

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
4 [报告]
发表于 2014-01-21 20:09 |只看该作者
回复 3# laliheyi


    管道,没错

论坛徽章:
6
摩羯座
日期:2013-12-27 09:45:04技术图书徽章
日期:2014-01-27 12:40:06辰龙
日期:2014-02-28 15:12:52巳蛇
日期:2014-03-21 17:06:27未羊
日期:2014-04-15 20:12:41黑曼巴
日期:2016-08-02 11:00:06
5 [报告]
发表于 2014-01-21 20:22 |只看该作者
回复 4# reyleon

需求变动一下
  1. a|b|c|d|e|f
  2. |||||
  3. 3G|3G|s|darrier|mi%10|-1
  4. 3G|3G|s|Carrier|m%1|-1
  5. 3G|3G|s|Carrier|m%10|-1
  6. 3G|3G|s|Carrier|m%2|-1
  7. 3G|3G|s|darrier|mi%1|-1
  8. 3G|3G|s|darrier|mi%2|-1
复制代码
结果
  1. a|b|c|d|e|f
  2. |||||
  3. 3G|3G|s|Carrier|m%1|-1
  4. 3G|3G|s|Carrier|m%2|-1
  5. 3G|3G|s|Carrier|m%10|-1
  6. 3G|3G|s|Darrier|mi%1|-1
  7. 3G|3G|s|Darrier|mi%2|-1
  8. 3G|3G|s|Darrier|mi%10|-1
复制代码
同样要求按照前5列排序,优先按照前4列第5列字母部分按字母序排序,但是要求第5列后面的数字按照数字序排序
   

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
6 [报告]
发表于 2014-01-21 22:10 |只看该作者
回复 5# laliheyi


    爱莫能助

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
7 [报告]
发表于 2014-01-21 23:13 |只看该作者
  1. head -2 file2;awk -F'[%||]' 'NR>2{num=$6;a=$5;print $0"|"a"|"num | "sort -t \"|\" -k1,5 -k7,7 -k8,8n"}' file2 | awk 'BEGIN{FS=OFS="|"}{NF-=2}1'
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP