免费注册 查看新帖 |

Chinaunix

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

[文本处理] 问个匹配后计算的问题 [复制链接]

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-01-26 13:16 |只看该作者 |倒序浏览
对于:

  1. ==============================================================
  2. qname        ngb.q
  3. hostname     compute-64-13.local
  4. group        ST_PG
  5. owner        zhouyang
  6. project      ngb_un
  7. department   defaultdepartment
  8. jobname      blast_4species_92.pep.sh
  9. jobnumber    1745897
  10. taskid       undefined
  11. account      sge
  12. priority     0
  13. qsub_time    Thu Jan 16 10:25:40 2014
  14. start_time   Fri Jan 17 08:00:56 2014
  15. end_time     Fri Jan 17 09:14:03 2014
  16. granted_pe   NONE
  17. slots        1
  18. failed       0
  19. exit_status  0
  20. ru_wallclock 4387
  21. ru_utime     5517.813
  22. ru_stime     11.114
  23. ru_maxrss    118524
  24. ru_ixrss     0
  25. ru_ismrss    0
  26. ru_idrss     0
  27. ru_isrss     0
  28. ru_minflt    1514322
  29. ru_majflt    0
  30. ru_nswap     0
  31. ru_inblock   0
  32. ru_oublock   0
  33. ru_msgsnd    0
  34. ru_msgrcv    0
  35. ru_nsignals  0
  36. ru_nvcsw     2739
  37. ru_nivcsw    82069
  38. cpu          5528.927
  39. mem          1297.879
  40. io           0.035
  41. iow          0.000
  42. maxvmem      3.426G
  43. arid         undefined
  44. ==============================================================
  45. qname        ngb.q
  46. hostname     compute-21-0.local
  47. group        ST_PG
  48. owner        zhouyang
  49. project      ngb_un
  50. department   defaultdepartment
  51. jobname      blast_4species_38.pep.sh
  52. jobnumber    1745910
  53. taskid       undefined
  54. account      sge
  55. priority     0
  56. qsub_time    Thu Jan 16 10:25:48 2014
  57. start_time   Fri Jan 17 08:10:24 2014
  58. end_time     Fri Jan 17 09:14:05 2014
  59. granted_pe   NONE
  60. slots        1
  61. failed       0
  62. exit_status  0
  63. ru_wallclock 3821
  64. ru_utime     4757.413
  65. ru_stime     7.035
  66. ru_maxrss    128176
  67. ru_ixrss     0
  68. ru_ismrss    0
  69. ru_idrss     0
  70. ru_isrss     0
  71. ru_minflt    1645788
  72. ru_majflt    0
  73. ru_nswap     0
  74. ru_inblock   0
  75. ru_oublock   0
  76. ru_msgsnd    0
  77. ru_msgrcv    0
  78. ru_nsignals  0
  79. ru_nvcsw     4639
  80. ru_nivcsw    272407
  81. cpu          4764.448
  82. mem          1346.846
  83. io           0.037
  84. iow          0.000
  85. maxvmem      375.039M
  86. arid         undefined
  87. ==============================================================
  88. qname        bc.q
  89. hostname     compute-23-40.local
  90. group        bc_aap
  91. owner        liuyili
  92. project      aaptest
  93. department   defaultdepartment
  94. jobname      soap_00002.sh
  95. jobnumber    1794799
  96. taskid       undefined
  97. account      sge
  98. priority     0
  99. qsub_time    Fri Jan 17 01:34:54 2014
  100. start_time   Fri Jan 17 01:34:58 2014
  101. end_time     Fri Jan 17 01:35:00 2014
  102. granted_pe   NONE
  103. slots        1
  104. failed       0
  105. exit_status  0
  106. ru_wallclock 2
  107. ru_utime     0.141
  108. ru_stime     0.084
  109. ru_maxrss    1756
  110. ru_ixrss     0
  111. ru_ismrss    0
  112. ru_idrss     0
  113. ru_isrss     0
  114. ru_minflt    25934
  115. ru_majflt    0
  116. ru_nswap     0
  117. ru_inblock   0
  118. ru_oublock   0
  119. ru_msgsnd    0
  120. ru_msgrcv    0
  121. ru_nsignals  0
  122. ru_nvcsw     461
  123. ru_nivcsw    109
  124. cpu          0.225
  125. mem          0.001
  126. io           0.006
  127. iow          0.000
  128. maxvmem      321.426M
  129. arid         undefined
复制代码
这样的文本,我想以owner、time为输入,比如输入是zhouyang、30,匹配一下,距今qsub_time是30天内的所有owner为zhouyang的jobname、jobnumber、qsub_time、
start_time、end_time、cpu、mem、io以及maxvmem,然后对start_time、end_time进行计算其差值。输出:

  1. jobname   jobnumber   qsub_time   start_time   end_time   cpu   mem    io    maxvmem   count(就是start_time、end_time的差值)
  2. blast_4species_92.pep.sh   1745897  Thu Jan 16 10:25:40 2014  Fri Jan 17 08:00:56 2014    Fri Jan 17 09:14:03 2014  5528.927 1297.879  0.035  3.426G   01:13:07
  3. blast_4species_38.pep.sh   1745910   Fri Jan 17 01:34:54 2014   Fri Jan 17 01:34:58 2014    Fri Jan 17 01:35:00 2014  0.225  0.001   0.006 321.426M   00:00:02
复制代码
最后计算出他们cpu   mem    io    maxvmem   count的总和:输出最终结果是:

  1. jobname   jobnumber   qsub_time   start_time   end_time   cpu   mem    io    maxvmem   count(就是start_time、end_time的差值)
  2. blast_4species_92.pep.sh   1745897  Thu Jan 16 10:25:40 2014  Fri Jan 17 08:00:56 2014    Fri Jan 17 09:14:03 2014  5528.927 1297.879  0.035  3.426G   01:13:07
  3. blast_4species_38.pep.sh   1745910   Fri Jan 17 01:34:54 2014   Fri Jan 17 01:34:58 2014    Fri Jan 17 01:35:00 2014  0.225  0.001   0.006 321.426M   00:00:02

  4. ===>count all:
  5. zhouyang    cpu:5 529.152   mem:1297.880    io:0.041    maxvmem: 3 829.65M   count:01:13:09
复制代码
难点:
1、对段落进行匹配,根据指定行内容获取该段落信息;
2、时间的转换和计算(对qsub_time的判断,对start_time、end_time进行计算其差值)
3、结果的合并

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
2 [报告]
发表于 2014-01-27 09:45 |只看该作者
本帖最后由 huang6894 于 2014-01-27 09:53 编辑

1、对段落进行匹配,根据指定行内容获取该段落信息;
能不能这样,定义一个元素,遇到qname是,为1,遇到arid时为0,对qsub_time计算,如果距离当前时间超出time的话为0,然后当这个为1的时候再去匹配段落信息呢?

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-02-25 06:20:00
3 [报告]
发表于 2014-01-27 11:04 |只看该作者
本帖最后由 xiaoshichao143 于 2014-01-27 12:41 编辑
  1. #!/bin/bash

  2. if [[ $# -ne 2 ]];then
  3.         echo "Usage: sh $0 OWNER INTERVAL_TIME"
  4.         exit 1
  5. fi

  6. INPUT_FILE="file.txt"
  7. TEMP_FILE="temp.txt"
  8. OWNER="$1"
  9. TIME_INTERVAL_INPUT="$2"
  10. NUM_OF_EQUAL="$(($(grep '=' ${INPUT_FILE} | awk '! a[$0]++' | wc -c)-1))"

  11. function format() {
  12.         TIME_H=$(eval echo \$$1)
  13.         TIME_M=$(eval echo \$$2)
  14.         TIME_S=$(eval echo \$$3)
  15.         if [[ ${#TIME_H} -eq 1 ]];then
  16.                 eval $1="0\$$1"
  17.         fi
  18.         if [[ ${#TIME_M} -eq 1 ]];then
  19.                 eval $2="0\$$2"
  20.         fi
  21.         if [[ ${#TIME_S} -eq 1 ]];then
  22.                 eval $3="0\$$3"
  23.         fi
  24. }

  25. echo "jobname|jobnumber|qsub_time|start_time|end_time|cpu|mem|io|maxvmem|count" | awk -F'|' '{color=30;for(i=1;i<=NF;i++){color++;if(color==38)color=31;printf "\033[0;%s;1m%s\033[0m|",color,$i};print ""}' | sed 's/|$//'
  26. sed ':a;$!N;s/\n/ /g;ta' ${INPUT_FILE} | sed "s/=\{${NUM_OF_EQUAL}\} /\n/g" | sed '/^$/d' | grep "${OWNER}" | sed 's/ \{2,\}/|/g' > ${OWNER}.txt
  27. cat ${OWNER}.txt | while read line
  28. do
  29.         TIME_NOW=$(date +%s -d "$(date)")
  30.         TIME_QSUB=$(date +%s -d "$(echo ${line} | sed 's/.*qsub_time|\(.*\) start_time.*/\1/')")
  31.         TIME_INTERVAL=$(((${TIME_NOW}-${TIME_QSUB})/86400))
  32.         if [[ ${TIME_INTERVAL_GET} -le ${TIME_INTERVAL_INPUT} ]];then
  33.                 jobname="$(echo $line | sed 's/.*jobname|\(.*\) jobnumber.*/\1/')"
  34.                 jobnumber="$(echo $line | sed 's/.*jobnumber|\(.*\) taskid.*/\1/')"
  35.                 qsub_time="$(echo $line | sed 's/.*qsub_time|\(.*\) start_time.*/\1/')"
  36.                 start_time="$(echo $line | sed 's/.*start_time|\(.*\) end_time.*/\1/')"
  37.                 end_time="$(echo $line | sed 's/.*end_time|\(.*\) granted_pe.*/\1/')"
  38.                 cpu="$(echo $line | sed 's/.*cpu|\(.*\) mem.*io.*/\1/')"
  39.                 mem="$(echo $line | sed 's/.*mem|\(.*\) io.*iow.*/\1/')"
  40.                 io="$(echo $line | sed 's/.*io|\(.*\) iow.*/\1/')"
  41.                 maxvmem="$(echo $line | sed 's/.*maxvmem|\(.*\) arid.*/\1/')"

  42.                 TIME_INTERVAL_BETWEEN_END_AND_START=$(($(date +%s -d "$end_time")-$(date +%s -d "$start_time")))
  43.                 TIME_HOUR="00"
  44.                 TIME_MINUTE="00"
  45.                 if [[ ${TIME_INTERVAL_BETWEEN_END_AND_START} -lt 60 ]];then
  46.                         TIME_SECOND="${TIME_INTERVAL_BETWEEN_END_AND_START}"
  47.                 elif [[ ${TIME_INTERVAL_BETWEEN_END_AND_START} -lt 3600 ]];then
  48.                         TIME_MINUTE="$((${TIME_INTERVAL_BETWEEN_END_AND_START}/60))"
  49.                         TIME_SECOND="$((${TIME_INTERVAL_BETWEEN_END_AND_START}%60))"
  50.                 else
  51.                         TIME_HOUR="$((${TIME_INTERVAL_BETWEEN_END_AND_START}/(60*60)))"
  52.                         TIME_MINUTE="$((${TIME_INTERVAL_BETWEEN_END_AND_START}%(60*60)/60))"
  53.                         TIME_SECOND="$((${TIME_INTERVAL_BETWEEN_END_AND_START}%60))"
  54.                 fi
  55.                 format TIME_HOUR TIME_MINUTE TIME_SECOND
  56.                 count="${TIME_HOUR}:${TIME_MINUTE}:${TIME_SECOND}"
  57.                 echo "$jobname|$jobnumber|$qsub_time|$start_time|$end_time|$cpu|$mem|$io|$maxvmem|$count" | awk -F'|' '{color=30;for(i=1;i<=NF;i++){color++;if(color==38)color=31;printf "\033[0;%s;1m%s\033[0m|",color,$i};print ""}' | sed 's/|$//'
  58.                 if echo $maxvmem | grep -q 'G';then
  59.                         maxvmem=$(echo "scale=4;$(echo $maxvmem | tr -d 'G')*1024" | bc)
  60.                 fi
  61.                 echo "$cpu|$mem|$io|${maxvmem}|$count" >> ${TEMP_FILE}
  62.         fi
  63. done

  64. echo -e "\n===>count all:"
  65. TOTAL_CPU=$(awk -F'|' '{sum += $1} END{print sum}' ${TEMP_FILE})
  66. TOTAL_MEM=$(awk -F'|' '{sum += $2} END{print sum}' ${TEMP_FILE})
  67. TOTAL_IO=$(awk -F'|' '{sum += $3} END{print sum}' ${TEMP_FILE})
  68. TOTAL_VMEM=$(awk -F'|' '{sum += $4} END{print sum}' ${TEMP_FILE})
  69. TOTAL_HOUR=$(awk -F'[|:]' '{sum += $5} END{print sum}' ${TEMP_FILE})
  70. TOTAL_MINUTE=$(awk -F'[|:]' '{sum += $6} END{print sum}' ${TEMP_FILE})
  71. TOTAL_SECOND=$(awk -F'[|:]' '{sum += $7} END{print sum}' ${TEMP_FILE})
  72. SECOND=$((${TOTAL_SECOND}%60))
  73. MINUTE=$(((${TOTAL_MINUTE}+${TOTAL_SECOND}/60)%60))
  74. HOUR=$((${TOTAL_HOUR}+(${TOTAL_MINUTE}+${TOTAL_SECOND}/60)/60))
  75. format HOUR MINUTE SECOND
  76. echo -e "$1\tcpu:${TOTAL_CPU}\tmem:${TOTAL_MEM}\tio:${TOTAL_IO}\tmaxvmem:${TOTAL_VMEM}M\tcount:${HOUR}:${MINUTE}:${SECOND}"
  77. rm -rf ${OWNER}.txt ${TEMP_FILE}
复制代码

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
4 [报告]
发表于 2014-01-27 11:18 |只看该作者
回复 3# xiaoshichao143


    嗯嗯,谢谢你,谢谢。。大概能明白一点。。谢谢

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
5 [报告]
发表于 2014-01-27 11:43 |只看该作者
回复 3# xiaoshichao143


    大神,想问下,有什么优化的方法吗?404M的文件,30分钟没有结果出来呢。。。不好意思啊

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-02-25 06:20:00
6 [报告]
发表于 2014-01-27 16:26 |只看该作者
本帖最后由 xiaoshichao143 于 2014-01-27 17:10 编辑

回复 5# huang6894
  1. #!/bin/bash

  2. if [[ $# -ne 2 ]];then
  3.         echo "Usage: sh $0 OWNER INTERVAL_TIME"
  4.         exit 1
  5. fi

  6. INPUT_FILE="file.txt"
  7. TOTAL_FILE="total.txt"
  8. #定义属主,用于搜索属于该属主的记录
  9. OWNER="$1"
  10. #定义时间间隔,用于搜索在该时间天数内的记录
  11. TIME_INTERVAL_INPUT="$2"
  12. #得到"="号的个数
  13. NUM_OF_EQUAL="$(($(head -n 1 ${INPUT_FILE} | wc -c)-1))"

  14. #格式化输出时间
  15. function format() {
  16.         TIME_H=$(eval echo \$$1)
  17.         TIME_M=$(eval echo \$$2)
  18.         TIME_S=$(eval echo \$$3)
  19.         if [[ ${#TIME_H} -eq 1 ]];then
  20.                 eval $1="0\$$1"
  21.         fi
  22.         if [[ ${#TIME_M} -eq 1 ]];then
  23.                 eval $2="0\$$2"
  24.         fi
  25.         if [[ ${#TIME_S} -eq 1 ]];then
  26.                 eval $3="0\$$3"
  27.         fi
  28. }

  29. echo "jobname|jobnumber|qsub_time|start_time|end_time|cpu|mem|io|maxvmem|count" | awk -F'|' '{color=30;for(i=1;i<=NF;i++){color++;if(color==38)color=31;printf "\033[0;%s;1m%s\033[0m|",color,$i};print ""}' | sed 's/|$//'

  30. #删除临时文件
  31. rm -f ${OWNER}.txt ${INPUT_FILE}.* ${TOTAL_FILE}
  32. #备份文件
  33. cp ${INPUT_FILE}{,.bak}
  34. #格式化文件,筛选出需要的行
  35. sed -ri '/^(=|owner|job|qsub|start|end|cpu|mem|io[^w]|max)/!d' ${INPUT_FILE}.bak
  36. #将大文件分割成可处理的小文件
  37. split -l $((11*11*11*6)) -a 4 ${INPUT_FILE}.bak ${INPUT_FILE}.

  38. #读每一个分割后的小文件
  39. for file in $(ls ${INPUT_FILE}.a*)
  40. do
  41.         #格式化分割后的小文件
  42.         sed ':a;$!N;s/\n/ /g;ta' ${file} | sed "s/=\{${NUM_OF_EQUAL}\} /\n/g" | sed '/^$/d' | grep "${OWNER}" \
  43.                 | sed 's/ \{2,\}/|/g' > ${OWNER}.txt
  44.         cat ${OWNER}.txt | while read line
  45.         do
  46.                 #从1970-01-01到现在的杪数
  47.                 TIME_NOW=$(date +%s -d "$(date)")
  48.                 #从1970-01-01到qsub_time时间之间的秒数
  49.                 TIME_QSUB=$(date +%s -d "$(echo ${line} | sed 's/.*qsub_time|\(.*\) start_time.*/\1/')")
  50.                 #从qsub_time到现在所隔的天数
  51.                 TIME_INTERVAL_GET=$(((${TIME_NOW}-${TIME_QSUB})/86400))
  52.                 #如果从qsub_time到现在所隔的天数少于所输入的天数,则是需要的记录
  53.                 if [[ ${TIME_INTERVAL_GET} -le ${TIME_INTERVAL_INPUT} ]];then
  54.                         jobname="$(echo $line | sed 's/.*jobname|\(.*\) jobnumber.*/\1/')"
  55.                         jobnumber="$(echo $line | sed 's/.*jobnumber|\(.*\) qsub_time.*/\1/')"
  56.                         qsub_time="$(echo $line | sed 's/.*qsub_time|\(.*\) start_time.*/\1/')"
  57.                         start_time="$(echo $line | sed 's/.*start_time|\(.*\) end_time.*/\1/')"
  58.                         end_time="$(echo $line | sed 's/.*end_time|\(.*\) cpu.*/\1/')"
  59.                         cpu="$(echo $line | sed 's/.*cpu|\(.*\) mem.*io.*/\1/')"
  60.                         mem="$(echo $line | sed 's/.*mem|\(.*\) io.*maxvmem.*/\1/')"
  61.                         io="$(echo $line | sed 's/.*io|\(.*\) maxvmem.*/\1/')"
  62.                         maxvmem="$(echo $line | sed 's/.*maxvmem|\(.*\)/\1/')"
  63.                         #maxvmem="$(echo $line | sed 's/.*maxvmem|\(.*\) arid.*/\1/')"

  64.                         TIME_INTERVAL_BETWEEN_END_AND_START=$(($(date +%s -d "$end_time")-$(date +%s -d "$start_time")))
  65.                         TIME_HOUR="00"
  66.                         TIME_MINUTE="00"
  67.                         if [[ ${TIME_INTERVAL_BETWEEN_END_AND_START} -lt 60 ]];then
  68.                                 TIME_SECOND="${TIME_INTERVAL_BETWEEN_END_AND_START}"
  69.                         elif [[ ${TIME_INTERVAL_BETWEEN_END_AND_START} -lt 3600 ]];then
  70.                                 TIME_MINUTE="$((${TIME_INTERVAL_BETWEEN_END_AND_START}/60))"
  71.                                 TIME_SECOND="$((${TIME_INTERVAL_BETWEEN_END_AND_START}%60))"
  72.                         else
  73.                                 TIME_HOUR="$((${TIME_INTERVAL_BETWEEN_END_AND_START}/(60*60)))"
  74.                                 TIME_MINUTE="$((${TIME_INTERVAL_BETWEEN_END_AND_START}%(60*60)/60))"
  75.                                 TIME_SECOND="$((${TIME_INTERVAL_BETWEEN_END_AND_START}%60))"
  76.                         fi
  77.                         format TIME_HOUR TIME_MINUTE TIME_SECOND
  78.                         count="${TIME_HOUR}:${TIME_MINUTE}:${TIME_SECOND}"
  79.                         echo "$jobname|$jobnumber|$qsub_time|$start_time|$end_time|$cpu|$mem|$io|$maxvmem|$count" | awk -F'|' '{color=30;for(i=1;i<=NF;i++){color++;if(color==38)color=31;printf "\033[0;%s;1m%s\033[0m|",color,$i};print ""}' | sed 's/|$//'
  80.                         if echo $maxvmem | grep -q 'G';then
  81.                                 maxvmem=$(echo "scale=4;$(echo $maxvmem | tr -d 'G')*1024" | bc)
  82.                         fi
  83.                         echo "$cpu|$mem|$io|${maxvmem%M}|$count" >> ${TOTAL_FILE}
  84.                 fi
  85.         done
  86. done
  87. echo -e "\n===>count all:"
  88. TOTAL_CPU=$(awk -F'|' '{sum += $1} END{print sum}' ${TOTAL_FILE})
  89. TOTAL_MEM=$(awk -F'|' '{sum += $2} END{print sum}' ${TOTAL_FILE})
  90. TOTAL_IO=$(awk -F'|' '{sum += $3} END{print sum}' ${TOTAL_FILE})
  91. TOTAL_VMEM=$(awk -F'|' '{sum += $4} END{print sum}' ${TOTAL_FILE})
  92. TOTAL_HOUR=$(awk -F'[|:]' '{sum += $5} END{print sum}' ${TOTAL_FILE})
  93. TOTAL_MINUTE=$(awk -F'[|:]' '{sum += $6} END{print sum}' ${TOTAL_FILE})
  94. TOTAL_SECOND=$(awk -F'[|:]' '{sum += $7} END{print sum}' ${TOTAL_FILE})
  95. SECOND=$((${TOTAL_SECOND}%60))
  96. MINUTE=$(((${TOTAL_MINUTE}+${TOTAL_SECOND}/60)%60))
  97. HOUR=$((${TOTAL_HOUR}+(${TOTAL_MINUTE}+${TOTAL_SECOND}/60)/60))
  98. format HOUR MINUTE SECOND
  99. echo -e "$1\tcpu:${TOTAL_CPU}\tmem:${TOTAL_MEM}\tio:${TOTAL_IO}\tmaxvmem:${TOTAL_VMEM}M\tcount:${HOUR}:${MINUTE}:${SECOND}"
复制代码

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-02-25 06:20:00
7 [报告]
发表于 2014-01-27 16:30 |只看该作者
回复 5# huang6894


    文件太多,不好处理.将它们分割了,还是会很慢,但结果是有出来. 我也是新手,肯定会有更好的方法的

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
8 [报告]
发表于 2014-01-27 17:05 |只看该作者
回复 7# xiaoshichao143


    真的,很感谢,很感谢

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
9 [报告]
发表于 2014-02-08 16:18 |只看该作者
顶顶老帖,求大神帮帮忙啊~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP