免费注册 查看新帖 |

Chinaunix

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

[文本处理] 文本数据,将某一列按月份排序,怎么做? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-13 13:52 |只看该作者 |倒序浏览
APPLE_ID        APP_NAME        APP_TYPE        PRIMARY_LANGUAGE        SKU        VERSION_STRING        ITC_STATUS        LATEST_STATUS_CHANGE_DATE
597330195        王开摄影        iOS        Simplified Chinese        20130128001        2.4.2        Ready for Sale        01-JUL-13
598864675        德搜信息        iOS        Simplified Chinese        20130201002        2.2.0        Ready for Sale        16-MAR-13
702620009        望景美食        iOS        Simplified Chinese        20130909002        2.3.1        Ready for Sale        17-SEP-13
……
……



文本文件cat出来就是这个样子的。

每一列用tab制表符分割开的。

现在,我想把LATEST_STATUS_CHANGE_DATE这一列,按日期降序排列。然后标准输出到屏幕。

用什么命令啊?

论坛徽章:
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 [报告]
发表于 2013-12-13 14:22 |只看该作者
  1. awk 'NR>1{system("date -d "$NF" +%s");print}' urfile | sed 'N;s/\n/\t/g' | sort -nr | sed 's/^[^\t]\+\t//'
复制代码

论坛徽章:
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-12-13 14:38 |只看该作者
回复 1# animama88

$ awk 'NR==1{print;next}{cmd="date -d "$NF " +%s";cmd |getline d;a[d]=$0}END{t=asorti(a,b);for(n=t;n>0;n--)print  a[b[n]]}' FILE
APPLE_ID        APP_NAME        APP_TYPE        PRIMARY_LANGUAGE        SKU        VERSION_STRING        ITC_STATUS        LATEST_STATUS_CHANGE_DATE
702620009        望景美食        iOS        Simplified Chinese        20130909002        2.3.1        Ready for Sale        17-SEP-13
597330195        王开摄影        iOS        Simplified Chinese        20130128001        2.4.2        Ready for Sale        01-JUL-13
598864675        德搜信息        iOS        Simplified Chinese        20130201002        2.2.0        Ready for Sale        16-MAR-13

   

论坛徽章:
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 [报告]
发表于 2013-12-13 15:07 |只看该作者
本帖最后由 reyleon 于 2013-12-13 15:10 编辑

回复 3# jason680


    学习了,原来用管道的方法可以将shell命令结果捕捉到

论坛徽章:
0
5 [报告]
发表于 2013-12-13 15:17 |只看该作者
额。我是MAC系统。date -d 命令不太一样。怎办?

     -d dst  Set the kernel's value for daylight saving time.  If dst is non-zero, future calls to gettimeofday(2) will
             return a non-zero for tz_dsttime.

wayne:~ dyd$ awk 'NR==1{print;next}{cmd="date -d "$NF " +%s";cmd |getline d;a[d]=$0}END{t=asorti(a,b);for(n=t;n>0;n--)print  a[b[n]]}' /Users/dyd/Desktop/QZWWF5X63G_apps.txt
APPLE_ID        APP_NAME        APP_TYPE        PRIMARY_LANGUAGE        SKU        VERSION_STRING        ITC_STATUS        LATEST_STATUS_CHANGE_DATE        RATING        PRIMARY_GENRE        SECONDARY_GENRE        COUNT_IN_APP_APPROVED        BUNDLE_IDENTIFIER        BUNDLE_VERSION        BUNDLE_DEVICE_FAMILY        MINIMUM_OS_VERSION        BUNDLE_LOCALIZATIONS        PRE_RENDERED_ICON        CURRENT_PRICE_TIER        iAD_ENABLED        GAME_CENTER_ENABLED        NEWSSTAND_ENABLED        APPROVED_LEADERBOARD_COUNT        APPROVED_ACHIEVEMENT_COUNT        English        English_UK        French        German        French_CA        English_CA        Italian        Spanish        Japanese        Dutch        Danish        Finnish        Korean        Norwegian        Brazilian_Portuguese        Russian        Swedish        Traditional_Chinese        Simplified_Chinese        Greek        Portuguese        Turkish        English_Australian        Spanish_MX        Thai        Indonesian        Malay        Vietnamese        Spanish_LTNAM        US        CA        GB        FR        SE        NO        DE        IE        AU        DK        JP        IT        CH        CZ        AT        IL        ES        NL        RU        DO        CO        BR        MX        AR        IS        FI        SZ        ZW        LC        SK        MG        AZ        GT        ML        MW        BM        DZ        PA        LA        PW        VN        BO        PH        CL        KY        BW        TT        PK        OM        LV        UG        EE        GR        BE        MZ        TD        LU        LK        KZ        MT        TR        NI        SN        GY        ZA        PT        BH        KG        KE        TJ        CV        LB        HN        NA        RO        TZ        FM        SL        PL        VC        KN        MK        AE        NZ        KH        BB        BS        SR        PG        ST        BF        MO        SV        AL        SB        TC        GW        ID        DM        YE        BG        SA        VE        AO        SG        GD        CG        KW        LR        PE        MS        BZ        QA        AM        CY        HR        CN        GM        SI        MR        LT        NP        GH        AI        UA        FJ        CR        NG        PY        HK        UZ        TM        AG        MY        TN        IN        TW        BT        NE        MD        TH        HU        EC        BN        MU        JM        SC        EG        BJ        KR        VG        JO        UY        MN        BY
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
awk: calling undefined function asorti
input record number 83, file /Users/dyd/Desktop/QZWWF5X63G_apps.txt
source line number 1
wayne:~ dyd$

论坛徽章:
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
6 [报告]
发表于 2013-12-13 15:33 |只看该作者
回复 3# jason680
awk不擅长数值排序,如果日期间隔比较大,比如2000-1-1和2013-1-1就不行了~

   

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
7 [报告]
发表于 2013-12-13 15:58 |只看该作者
回复 1# animama88
  1. sort -t '-'  -k2 -M file.2013-12-13
  2. 598864675        碌脗脩脜垄        iOS        Simplified Chinese        20130201002        2.2.0        Ready for Sale        16-MAR-13
  3. 597330195        脥驴陋脡影        iOS        Simplified Chinese        20130128001        2.4.2        Ready for Sale        01-JUL-13
  4. 702620009        脥戮掳脙食        iOS        Simplified Chinese        20130909002        2.3.1        Ready for Sale        17-SEP-13
复制代码

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
8 [报告]
发表于 2013-12-13 17:18 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
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
9 [报告]
发表于 2013-12-13 17:34 |只看该作者
回复 8# zooyo
我的意思就是转换成时间戳后排序不行~

   

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
10 [报告]
发表于 2013-12-13 17:38 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP