免费注册 查看新帖 |

Chinaunix

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

[文本处理] 文本处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-31 09:55 |只看该作者 |倒序浏览
本帖最后由 mazuju099 于 2014-03-31 10:01 编辑

使用bjobs -u all 看到如下:可以看出是按照时间排序的,如何将这个文档按照执行节点排序(EXEC_HOST,去掉核心数后剩余的部分,如c02n07, c03n07....)?
对于一个作业在两个节点上运行的情形,例如下面的第13和14行,能否将13行的信息补全到第14行,之后再按照节点排序?
  1. [test1@console1 ~]$ bjobs -u all
  2. JOBID   USER    STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
  3. 997     test2   RUN   publicq    console1.fj c02n07      g09-tddft  Mar 23 21:10
  4. 1004    test2   RUN   publicq    console1.fj 32*c03n07   *.frag.out Mar 24 06:44
  5. 1240    test3   RUN   publicq    console1.fj 12*c05n04   */vasp>log Mar 25 20:08
  6. 1291    test3   RUN   publicq    console1.fj 12*c08n05   *vasp >log Mar 26 09:04
  7. 1316    test1   RUN   publicq    console1.fj 16*c06n07   2-band-16  Mar 26 10:49
  8. 1320    test3   RUN   publicq    console1.fj 16*c01n04   *jf >log   Mar 26 11:03
  9. 1429    test1   RUN   publicq    console1.fj 16*c08n07   22-band    Mar 26 12:46
  10. 1507    test3   RUN   publicq    console1.fj 16*c07n06   *h2-h.gjf  Mar 26 14:19
  11. 1510    test1   RUN   publicq    console1.fj 16*c09n07   23-band    Mar 26 14:39
  12. 1511    test3   RUN   publicq    console1.fj 16*c05n05   *jf >log   Mar 26 14:43
  13. 2785    test1   RUN   publicq    console1.fj 16*c07n03   3-band     Mar 26 22:03
  14.                                              16*c04n06
  15. 5214    test1   RUN   publicq    console1.fj 16*c08n06   4-band-h   Mar 27 12:06
  16.                                              16*c08n02
  17. 5401    test1   RUN   publicq    console1.fj 16*c07n05   5-band-h   Mar 27 14:18
  18.                                              16*c03n06
  19. 9377    test1   RUN   publicq    console1.fj 24*c08n03   *-band-h-6 Mar 28 23:33
  20.                                              24*c08n01
  21. 9496    test3   RUN   publicq    c10n02      24*c01n06   *sp >log;~ Mar 29 00:14
  22. 9508    test3   RUN   publicq    c10n02      16*c06n05   *sp >log;~ Mar 29 00:22
  23. 9509    test3   RUN   publicq    c10n02      16*c09n04   *sp >log;~ Mar 29 00:23
  24. 9512    test3   RUN   publicq    c10n02      16*c06n01   *sp >log;~ Mar 29 00:24
  25. 11724   test1   RUN   publicq    console1.fj 16*c02n03   23-bandh   Mar 29 16:24
  26.                                              16*c02n04
  27. 12754   test3   RUN   publicq    console1.fj 16*c04n07   *vasp >log Mar 29 22:37
  28. 12767   test3   RUN   publicq    console1.fj 16*c10n06   *vasp >log Mar 29 22:40
  29. 14303   test2   RUN   publicq    console1.fj 16*c04n02   MS         Mar 30 08:36
  30. 16014   test2   RUN   smpq       console1.fj 16*smp01    opt        Mar 30 19:53
  31. 16051   test2   RUN   publicq    console1.fj 16*c03n05   jobname    Mar 30 20:07
  32. 16095   test2   RUN   publicq    console1.fj 16*c02n05   jobname    Mar 30 20:25
  33. 16096   test2   RUN   publicq    console1.fj 16*c06n06   jobname    Mar 30 20:26
  34. 16274   test1   RUN   publicq    console1.fj 16*c09n02   21-bandh   Mar 30 21:26
  35.                                              16*c01n07
  36. 16283   test3   RUN   publicq    console1.fj 16*c05n06   *vasp >log Mar 30 21:32
  37. 16448   GuoGC   RUN   privateq   console1.fj 32*c10n04   *vasp_vtst Mar 30 22:20
  38. 18191   test3   RUN   publicq    c10n02      24*c05n01   *vasp >log Mar 31 08:56
  39. 18252   test2   RUN   publicq    console1.fj 32*c03n04   job3       Mar 31 09:36
  40. 18253   test2   RUN   publicq    console1.fj 32*c09n03   job3       Mar 31 09:36
  41. 18255   test2   RUN   publicq    console1.fj 32*c01n01   job3       Mar 31 09:37
  42. 18256   test2   RUN   publicq    console1.fj 32*c03n03   job3       Mar 31 09:37
  43. 18258   test2   RUN   publicq    console1.fj 32*c01n02   job3       Mar 31 09:37
  44. 18260   test2   RUN   publicq    console1.fj 32*c05n03   job3       Mar 31 09:38
  45. 18262   test2   RUN   publicq    console1.fj 32*c02n01   job3       Mar 31 09:38
  46. 18264   test2   RUN   publicq    console1.fj 32*c06n03   job3       Mar 31 09:40
  47. 18265   test2   RUN   publicq    console1.fj 32*c05n02   job3       Mar 31 09:41
  48. 18266   test2   RUN   publicq    console1.fj 32*c04n03   job3       Mar 31 09:41
  49. 18267   GuoGC   RUN   privateq   console1.fj 32*c09n06   *vasp_vtst Mar 31 09:41
  50. 18268   test2   RUN   publicq    console1.fj 32*c02n06   job3       Mar 31 09:42
  51. 18269   test2   RUN   publicq    console1.fj 32*c01n05   job3       Mar 31 09:42
  52. 18270   test2   RUN   publicq    console1.fj 32*c09n01   job3       Mar 31 09:42
  53. 18272   test2   RUN   publicq    console1.fj 32*c04n04   job3       Mar 31 09:44
  54. 18273   test2   RUN   publicq    console1.fj 32*c05n07   job3       Mar 31 09:44
  55. 18297   test2   RUN   publicq    console1.fj 16*c06n04   jobSe      Mar 31 09:47
  56. 18299   test2   RUN   publicq    console1.fj 16*c08n04   jobSe      Mar 31 09:47
  57. 18300   test2   RUN   publicq    console1.fj 16*c06n02   jobSe      Mar 31 09:47
  58. 18302   test2   RUN   publicq    console1.fj 16*c08n05   jobSe      Mar 31 09:47
  59. 18304   test2   RUN   publicq    console1.fj 16*c08n06   jobSe      Mar 31 09:47
  60. 18306   test2   RUN   publicq    console1.fj 16*c05n06   jobSe      Mar 31 09:47
  61. 18307   test2   RUN   publicq    console1.fj 16*c01n07   jobSe      Mar 31 09:47
  62. 18310   test2   RUN   publicq    console1.fj 16*c04n05   jobSe      Mar 31 09:49
  63. 18311   test2   RUN   publicq    console1.fj 16*c04n05   jobSe      Mar 31 09:49
  64. 18314   test2   RUN   publicq    console1.fj 16*c01n03   jobSe      Mar 31 09:49
  65. 18315   GuoGC   RUN   privateq   console1.fj 32*c09n05   *vasp_vtst Mar 31 09:49
  66.                                              32*c10n01
  67. 18316   test1   RUN   publicq    console1.fj 32*c03n01   hechao     Mar 31 09:50
  68. 18317   test2   RUN   publicq    console1.fj 32*c07n04   job3       Mar 31 09:50
  69. 18318   test2   RUN   publicq    console1.fj 32*c07n07   job3       Mar 31 09:50
  70. 18319   test2   RUN   publicq    console1.fj 16*c02n02   jobSe      Mar 31 09:51
  71. 18320   test2   RUN   publicq    console1.fj 16*c02n02   jobSe      Mar 31 09:51
  72. 18321   test2   RUN   publicq    console1.fj 32*c04n01   job3       Mar 31 09:51
  73. 18322   test2   RUN   publicq    console1.fj 32*c07n02   job3       Mar 31 09:51
  74. 18323   test2   RUN   publicq    console1.fj 32*c07n01   job3       Mar 31 09:51
复制代码

论坛徽章:
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
2 [报告]
发表于 2014-03-31 09:57 |只看该作者
sort -k

论坛徽章:
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 [报告]
发表于 2014-03-31 10:12 |只看该作者
本帖最后由 jason680 于 2014-03-31 10:48 编辑

回复 1# mazuju099

How about this way

$ awk '{if(NF==1){S=substr(S,1,45)$1""substr(S,55);k=$1}else{S=$0;k=$6};gsub("[^*]+\\*","",k);if(NR==1)k="0";a[k]=a[k]S"\n"}END{t=asorti(a,b);for(n=1;n<=t;n++){printf a[b[n]]}}' FILE
JOBID   USER    STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
18255   test2   RUN   publicq    console1.fj 32*c01n01   job3       Mar 31 09:37
18258   test2   RUN   publicq    console1.fj 32*c01n02   job3       Mar 31 09:37
18314   test2   RUN   publicq    console1.fj 16*c01n03   jobSe      Mar 31 09:49
1320    test3   RUN   publicq    console1.fj 16*c01n04   *jf >log   Mar 26 11:03
18269   test2   RUN   publicq    console1.fj 32*c01n05   job3       Mar 31 09:42
9496    test3   RUN   publicq    c10n02      24*c01n06   *sp >log;~ Mar 29 00:14
16274   test1   RUN   publicq    console1.fj 16*c01n07   21-bandh   Mar 30 21:26
18307   test2   RUN   publicq    console1.fj 16*c01n07   jobSe      Mar 31 09:47
18262   test2   RUN   publicq    console1.fj 32*c02n01   job3       Mar 31 09:38
18319   test2   RUN   publicq    console1.fj 16*c02n02   jobSe      Mar 31 09:51
18320   test2   RUN   publicq    console1.fj 16*c02n02   jobSe      Mar 31 09:51
11724   test1   RUN   publicq    console1.fj 16*c02n03   23-bandh   Mar 29 16:24
11724   test1   RUN   publicq    console1.fj 16*c02n04   23-bandh   Mar 29 16:24
16095   test2   RUN   publicq    console1.fj 16*c02n05   jobname    Mar 30 20:25
18268   test2   RUN   publicq    console1.fj 32*c02n06   job3       Mar 31 09:42
997     test2   RUN   publicq    console1.fj c02n07      g09-tddft  Mar 23 21:10
...
   

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
4 [报告]
发表于 2014-03-31 10:15 |只看该作者
回复 1# mazuju099

这样会不会有点复杂:
  1. [seesea@UC ~]$ bjobs -u all > test.txt
  2. [seesea@UC ~]$ awk 'NR==1{print} NR>1{k=$6==""?$1:$6; sub(/.*\*/, "", k); ar[k"-"NR]=$0} END{n=asorti(ar, ard); for(i=1; i<=n; ++i){print ar[ard[i]]}}' test.txt
  3. JOBID   USER    STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
  4. 18255   test2   RUN   publicq    console1.fj 32*c01n01   job3       Mar 31 09:37
  5. 18258   test2   RUN   publicq    console1.fj 32*c01n02   job3       Mar 31 09:37
  6. 18314   test2   RUN   publicq    console1.fj 16*c01n03   jobSe      Mar 31 09:49
  7. 1320    test3   RUN   publicq    console1.fj 16*c01n04   *jf >log   Mar 26 11:03
  8. 18269   test2   RUN   publicq    console1.fj 32*c01n05   job3       Mar 31 09:42
  9. 9496    test3   RUN   publicq    c10n02      24*c01n06   *sp >log;~ Mar 29 00:14
  10.                                              16*c01n07
  11. 18307   test2   RUN   publicq    console1.fj 16*c01n07   jobSe      Mar 31 09:47
  12. 18262   test2   RUN   publicq    console1.fj 32*c02n01   job3       Mar 31 09:38
  13. 18319   test2   RUN   publicq    console1.fj 16*c02n02   jobSe      Mar 31 09:51
  14. 18320   test2   RUN   publicq    console1.fj 16*c02n02   jobSe      Mar 31 09:51
  15. 11724   test1   RUN   publicq    console1.fj 16*c02n03   23-bandh   Mar 29 16:24
  16.                                              16*c02n04
  17. 16095   test2   RUN   publicq    console1.fj 16*c02n05   jobname    Mar 30 20:25
  18. 18268   test2   RUN   publicq    console1.fj 32*c02n06   job3       Mar 31 09:42
  19. 997     test2   RUN   publicq    console1.fj c02n07      g09-tddft  Mar 23 21:10
  20. 18316   test1   RUN   publicq    console1.fj 32*c03n01   hechao     Mar 31 09:50
  21. 18256   test2   RUN   publicq    console1.fj 32*c03n03   job3       Mar 31 09:37
  22. 18252   test2   RUN   publicq    console1.fj 32*c03n04   job3       Mar 31 09:36
  23. 16051   test2   RUN   publicq    console1.fj 16*c03n05   jobname    Mar 30 20:07
  24.                                              16*c03n06
  25. 1004    test2   RUN   publicq    console1.fj 32*c03n07   *.frag.out Mar 24 06:44
  26. 18321   test2   RUN   publicq    console1.fj 32*c04n01   job3       Mar 31 09:51
  27. 14303   test2   RUN   publicq    console1.fj 16*c04n02   MS         Mar 30 08:36
  28. 18266   test2   RUN   publicq    console1.fj 32*c04n03   job3       Mar 31 09:41
  29. 18272   test2   RUN   publicq    console1.fj 32*c04n04   job3       Mar 31 09:44
  30. 18310   test2   RUN   publicq    console1.fj 16*c04n05   jobSe      Mar 31 09:49
  31. 18311   test2   RUN   publicq    console1.fj 16*c04n05   jobSe      Mar 31 09:49
  32.                                              16*c04n06
  33. 12754   test3   RUN   publicq    console1.fj 16*c04n07   *vasp >log Mar 29 22:37
  34. 18191   test3   RUN   publicq    c10n02      24*c05n01   *vasp >log Mar 31 08:56
  35. 18265   test2   RUN   publicq    console1.fj 32*c05n02   job3       Mar 31 09:41
  36. 18260   test2   RUN   publicq    console1.fj 32*c05n03   job3       Mar 31 09:38
  37. 1240    test3   RUN   publicq    console1.fj 12*c05n04   */vasp>log Mar 25 20:08
  38. 1511    test3   RUN   publicq    console1.fj 16*c05n05   *jf >log   Mar 26 14:43
  39. 16283   test3   RUN   publicq    console1.fj 16*c05n06   *vasp >log Mar 30 21:32
  40. 18306   test2   RUN   publicq    console1.fj 16*c05n06   jobSe      Mar 31 09:47
  41. 18273   test2   RUN   publicq    console1.fj 32*c05n07   job3       Mar 31 09:44
  42. 9512    test3   RUN   publicq    c10n02      16*c06n01   *sp >log;~ Mar 29 00:24
  43. 18300   test2   RUN   publicq    console1.fj 16*c06n02   jobSe      Mar 31 09:47
  44. 18264   test2   RUN   publicq    console1.fj 32*c06n03   job3       Mar 31 09:40
  45. 18297   test2   RUN   publicq    console1.fj 16*c06n04   jobSe      Mar 31 09:47
  46. 9508    test3   RUN   publicq    c10n02      16*c06n05   *sp >log;~ Mar 29 00:22
  47. 16096   test2   RUN   publicq    console1.fj 16*c06n06   jobname    Mar 30 20:26
  48. 1316    test1   RUN   publicq    console1.fj 16*c06n07   2-band-16  Mar 26 10:49
  49. 18323   test2   RUN   publicq    console1.fj 32*c07n01   job3       Mar 31 09:51
  50. 18322   test2   RUN   publicq    console1.fj 32*c07n02   job3       Mar 31 09:51
  51. 2785    test1   RUN   publicq    console1.fj 16*c07n03   3-band     Mar 26 22:03
  52. 18317   test2   RUN   publicq    console1.fj 32*c07n04   job3       Mar 31 09:50
  53. 5401    test1   RUN   publicq    console1.fj 16*c07n05   5-band-h   Mar 27 14:18
  54. 1507    test3   RUN   publicq    console1.fj 16*c07n06   *h2-h.gjf  Mar 26 14:19
  55. 18318   test2   RUN   publicq    console1.fj 32*c07n07   job3       Mar 31 09:50
  56.                                              24*c08n01
  57.                                              16*c08n02
  58. 9377    test1   RUN   publicq    console1.fj 24*c08n03   *-band-h-6 Mar 28 23:33
  59. 18299   test2   RUN   publicq    console1.fj 16*c08n04   jobSe      Mar 31 09:47
  60. 1291    test3   RUN   publicq    console1.fj 12*c08n05   *vasp >log Mar 26 09:04
  61. 18302   test2   RUN   publicq    console1.fj 16*c08n05   jobSe      Mar 31 09:47
  62. 5214    test1   RUN   publicq    console1.fj 16*c08n06   4-band-h   Mar 27 12:06
  63. 18304   test2   RUN   publicq    console1.fj 16*c08n06   jobSe      Mar 31 09:47
  64. 1429    test1   RUN   publicq    console1.fj 16*c08n07   22-band    Mar 26 12:46
  65. 18270   test2   RUN   publicq    console1.fj 32*c09n01   job3       Mar 31 09:42
  66. 16274   test1   RUN   publicq    console1.fj 16*c09n02   21-bandh   Mar 30 21:26
  67. 18253   test2   RUN   publicq    console1.fj 32*c09n03   job3       Mar 31 09:36
  68. 9509    test3   RUN   publicq    c10n02      16*c09n04   *sp >log;~ Mar 29 00:23
  69. 18315   GuoGC   RUN   privateq   console1.fj 32*c09n05   *vasp_vtst Mar 31 09:49
  70. 18267   GuoGC   RUN   privateq   console1.fj 32*c09n06   *vasp_vtst Mar 31 09:41
  71. 1510    test1   RUN   publicq    console1.fj 16*c09n07   23-band    Mar 26 14:39
  72.                                              32*c10n01
  73. 16448   GuoGC   RUN   privateq   console1.fj 32*c10n04   *vasp_vtst Mar 30 22:20
  74. 12767   test3   RUN   publicq    console1.fj 16*c10n06   *vasp >log Mar 29 22:40
  75. 16014   test2   RUN   smpq       console1.fj 16*smp01    opt        Mar 30 19:53
复制代码

论坛徽章:
0
5 [报告]
发表于 2014-03-31 10:21 |只看该作者
回复 3# jason680

感谢楼上的回复。我发现您这样处理把在同一个节点上运行的作业,只罗列了一个,
例如:
    62行和63行都在c04n05上运行,通过您的命令,只能罗列出一行,我想全部都罗列出来,请问该如何处理

论坛徽章:
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
6 [报告]
发表于 2014-03-31 10:24 |只看该作者
回复 5# mazuju099

modified already in  3楼

a[k]=a[k]S"\n"
   

论坛徽章:
0
7 [报告]
发表于 2014-03-31 10:29 |只看该作者
回复 4# seesea2517


    感谢您的回复,对于一个作业在两个节点上运行的情形,例如上面的第13和14行,能否将13行的信息补全到第14行,之后再按照节点排序?

论坛徽章:
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
8 [报告]
发表于 2014-03-31 10:39 |只看该作者
回复 1# mazuju099

EXEC_HOST,去掉核心数后剩余的部分

比如第二行的32*c03n07红色部分就是核心数吗?那排序之后需要保留核心数吗?

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
9 [报告]
发表于 2014-03-31 10:40 |只看该作者
回复 7# mazuju099


    这个作业的东西不是很熟悉。是否是这个意思:本行如果是空的话,就用上一行的内容补全就可以了?

论坛徽章:
0
10 [报告]
发表于 2014-03-31 10:43 |只看该作者
回复 9# seesea2517


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP