免费注册 查看新帖 |

Chinaunix

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

[文本处理] shell统计行,数字降序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-07 16:06 |只看该作者 |倒序浏览
直接进主题,shell统计行,数字降序如何实现,例如:

2,1,3
1,2,3
2,8,3
2,3,8
8,3,2
1,2,4
4,1,2
如上面的数字,同时对每一个的数字做降序排序,得到结果
1,2,3
1,2,3
2,3,8
2,3,8
2,3,8
1,2,4
1,2,4
这样,间隔符是,如何写脚本啊

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
2 [报告]
发表于 2013-06-07 16:18 |只看该作者
本帖最后由 yestreenstars 于 2013-06-07 16:20 编辑

这不是升序么?
  1. [root@localhost ~]# awk '{split($0,a,",");for(i=1;i<=asort(a,b);i++)s=s!=""?s","b[i]:b[i];print s;s=""}' i
  2. 1,2,3
  3. 1,2,3
  4. 2,3,8
  5. 2,3,8
  6. 2,3,8
  7. 1,2,4
  8. 1,2,4
  9. [root@localhost ~]#
复制代码

论坛徽章:
145
技术图书徽章
日期: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
3 [报告]
发表于 2013-06-07 16:37 |只看该作者
本帖最后由 jason680 于 2013-06-07 16:41 编辑

回复 1# 374063

which one do you like

$ awk -F, '{for(n=0;n++<NF;)a[n]=$n;t=asort(a);for(n=1;n<t;n++)printf a[n]",";print a[t];delete a}' FILE

$ awk -F, '{split($0,a);t=asort(a);for(n=1;n<t;n++)printf a[n]",";print a[t]}' FILE

$ perl -F, -lane '{$,=",";print sort @F}' FILE

1,2,3
1,2,3
2,3,8
2,3,8
2,3,8
1,2,4
1,2,4

   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
4 [报告]
发表于 2013-06-07 16:45 |只看该作者
回复 3# jason680


    i like the last one.

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-08 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-09-18 06:20:00数据库技术版块每周发帖之星
日期:2015-11-06 19:56:51数据库技术版块每日发帖之星
日期:2016-01-22 06:20:00数据库技术版块每日发帖之星
日期:2016-02-05 06:20:00
5 [报告]
发表于 2013-06-07 16:52 |只看该作者
  1. #!/bin/sh

  2. while read line
  3. do
  4.         a=($(for i in ${line//,/ };do echo $i;done | sort))
  5.         echo ${a[@]} | sed 's/ /,/g'
  6. done < e.txt
复制代码

论坛徽章:
0
6 [报告]
发表于 2013-06-07 17:11 |只看该作者
回复 3# jason680


    非常感谢你啊!!!

论坛徽章:
1
射手座
日期:2014-03-10 14:24:52
7 [报告]
发表于 2013-06-07 17:15 |只看该作者
perl好牛掰啊

论坛徽章:
1
2015七夕节徽章
日期:2015-08-21 17:58:43
8 [报告]
发表于 2013-06-07 17:29 |只看该作者
处理文本还是perl牛逼啊

论坛徽章:
0
9 [报告]
发表于 2013-06-07 17:46 |只看该作者
@jason680
跪了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP