免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5346 | 回复: 21

[文本处理] 提取。帮助下,账算糊涂了 [复制链接]

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2017-11-16 09:47 |显示全部楼层
本帖最后由 bmne 于 2017-11-16 09:49 编辑


我脑子不够用,还想 代码尽量短一些。我不行,越弄越糊涂。


只提取不包含数字 1  0 及小写字母 o 的行

同时删除如下条件的行:

去掉行中只有一种相同字母,并在行中任意位置(排除紧靠在一起的)出现3次及以上(  ≥3  )的行。( 如  asd3afah    aaa56fty   ae4ayaha )
去掉两种及以上相同字母在行中任意位置(排除紧靠在一起)出现2次及以上(  ≥2  )的行。( 如  asd3afsh    abf56fba   ae4aeaha )
去掉相同字母紧靠在一起出现1次及以上(  ≥1  )的行。 ( 如  aat6yaak   aaaqwaaa   aa8yukde )

去掉两个以上(  >2  )数字紧靠在一起的行  ( 如  a762ay39   6234vtyse   )
去掉数字紧靠在一起的情况出现3次及以上(  ≥3  )的行。 ( 如  82a34k56  92345678  )
去掉数字紧靠在一起相同数字的行  ( 如  a22hyrtf    88njrxe   )


(2个及以上就叫紧靠在一起)






论坛徽章:
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
发表于 2017-11-16 18:21 |显示全部楼层
回复 1# bmne

没看出来实际用途.

严重怀疑是作业.

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
发表于 2017-11-16 18:59 |显示全部楼层
回复 1# bmne


文件1内容如下:
asd3afah
aaa56fty
ae4ayaha
asd3afsh
abf56fba
ae4aeaha
aat6yaak
aaaqwaaa
aa8yukde
a762ay39
6234vtyse
82a34k56
92345678
a22hyrtf
88njrxe
0bc
obc
1bc
2bc
abc
  1. awk -F "" '{for(i=1;i<=NF;i++){g=$i~"[a-z]"?1:$i~"[0-9]"?2:0;if(g==1){a[$i]++;b[$i]++};if(g==1&&$i==$(i-1)){a[$i]--;f++};if(g==2&&$i==$(i-1)){h++}};for(x in b){if(b[x]>=2){c++}};for(j in a){if(a[j]>=3){d++};if(a[j]>=2){e++}};print "|"NR"|C"c,"D"d,"E"e,"F"f,"H"h;if($0~/[01o]/||c==1&&d==1||c>=2&&e>=2||f||h||$0~/[0-9]{3}/||$0~/([0-9]{2}.*){3}/){$0=""};c=0;d=0;e=0;f=0;h=0;delete a;delete b}$0' 1
复制代码

输出:
|1|C1 D1 E1 F H
|2|C1 D0 E0 F2 H0
|3|C1 D1 E1 F0 H0
|4|C2 D0 E2 F0 H0
|5|C3 D0 E3 F0 H0
|6|C2 D1 E2 F0 H0
|7|C1 D0 E1 F2 H0
|8|C1 D0 E1 F4 H0
|9|C1 D0 E0 F1 H0
|10|C1 D0 E1 F0 H0
|11|C0 D0 E0 F0 H0
|12|C0 D0 E0 F0 H0
|13|C0 D0 E0 F0 H0
|14|C0 D0 E0 F0 H1
|15|C0 D0 E0 F0 H1
|16|C0 D0 E0 F0 H0
|17|C0 D0 E0 F0 H0
|18|C0 D0 E0 F0 H0
|19|C0 D0 E0 F0 H0

2bc
|20|C0 D0 E0 F0 H0
abc



说明:
其中,|1|-|20|黄色背景的输出行是调试信息可以去掉,其他变量说明如下:
a[]:数组,累计某一种字母出现重复的次数,排除挨着的
b[]:数组,累计某一种字母出现重复的次数,不排除挨着的
c:计数器,记录出现重复的字母的种数,不排除挨着的。c==1:只有1种字母出现重复,比如aabc;c==2:有2种字母出现重复,比如aabbc
d:计数器,记录出现3次的字母的种数,排除挨着的。d==1:只有1种字母出现3次
e:计数器,记录出现2次的字母的种数,排除挨着的。e==1:只有1种字母出现2次,e==2:只有2种字母出现2次
f:计数器,记录相同字母紧靠在一起出现的次数
g:开关,g==1匹配的是字母;g==2匹配的是数字
h:计数器,记录相同数字紧靠在一起出现的次数

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2017-11-16 19:19 |显示全部楼层
回复 3# wh7211


大牛,牛人啊

辛苦了

现在手机不方便,明天再看

先谢谢


论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2017-11-17 08:52 |显示全部楼层
回复 3# wh7211



谢谢大牛

辛苦

完美。打死我也不会

如果非要鸡蛋挑骨头。还是说效率。代码能再短些可能更好。请别生气,实话!







论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
发表于 2017-11-24 20:18 |显示全部楼层
bmne 发表于 2017-11-16 09:47
我脑子不够用,还想 代码尽量短一些。我不行,越弄越糊涂。

用sed或awk试试。

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
发表于 2017-11-27 03:07 |显示全部楼层
本帖最后由 rubyish 于 2017-11-26 23:13 编辑

回复 1# bmne

KBD, nandugao ~~
去掉两种及以上相同字母在行中任意位置(排除紧靠在一起)出现2次及以上(  ≥2  )的行。( 如  asd3afsh    abf56fba   ae4aeaha )

xiugai ruxia:
去掉两种及以上相同字母在行中任意位置, 出现2次及以上(  ≥2  )的行。( 如  asd3afsh    abf56fba   ae4aeaha )
support LENGTH = 8 ONLY!!
[length "abf56fba" = 8]

run:
./karnataka file > save



karnataka.c
  1. # include "karnataka.h"

  2. my A[256] = {
  3.     [7]   = 1, [14]  = 1, [15]  = 1, [23]  = 1, [28]  = 1, [29]  = 1,
  4.     [30]  = 1, [31]  = 1, [39]  = 1, [46]  = 1, [47]  = 1, [55]  = 1,
  5.     [56]  = 1, [57]  = 1, [58]  = 1, [59]  = 1, [60]  = 1, [61]  = 1,
  6.     [62]  = 1, [63]  = 1, [71]  = 1, [78]  = 1, [79]  = 1, [87]  = 1,
  7.     [92]  = 1, [93]  = 1, [94]  = 1, [95]  = 1, [103] = 1, [110] = 1,
  8.     [111] = 1, [112] = 1, [113] = 1, [114] = 1, [115] = 1, [116] = 1,
  9.     [117] = 1, [118] = 1, [119] = 1, [120] = 1, [121] = 1, [122] = 1,
  10.     [123] = 1, [124] = 1, [125] = 1, [126] = 1, [127] = 1, [135] = 1,
  11.     [142] = 1, [143] = 1, [151] = 1, [156] = 1, [157] = 1, [158] = 1,
  12.     [159] = 1, [167] = 1, [174] = 1, [175] = 1, [183] = 1, [184] = 1,
  13.     [185] = 1, [186] = 1, [187] = 1, [188] = 1, [189] = 1, [190] = 1,
  14.     [191] = 1, [199] = 1, [206] = 1, [207] = 1, [215] = 1, [219] = 1,
  15.     [220] = 1, [221] = 1, [222] = 1, [223] = 1, [224] = 1, [225] = 1,
  16.     [226] = 1, [227] = 1, [228] = 1, [229] = 1, [230] = 1, [231] = 1,
  17.     [232] = 1, [233] = 1, [234] = 1, [235] = 1, [236] = 1, [237] = 1,
  18.     [238] = 1, [239] = 1, [240] = 1, [241] = 1, [242] = 1, [243] = 1,
  19.     [244] = 1, [245] = 1, [246] = 1, [247] = 1, [248] = 1, [249] = 1,
  20.     [250] = 1, [251] = 1, [252] = 1, [253] = 1, [254] = 1, [255] = 1,
  21. };

  22. my B[256] = {
  23.     [21]  = 1, [37]  = 1, [41]  = 1, [42]  = 1, [43]  = 1, [45]  = 1,
  24.     [53]  = 1, [69]  = 1, [73]  = 1, [74]  = 1, [75]  = 1, [77]  = 1,
  25.     [81]  = 1, [82]  = 1, [83]  = 1, [84]  = 1, [85]  = 1, [86]  = 1,
  26.     [87]  = 1, [89]  = 1, [90]  = 1, [91]  = 1, [93]  = 1, [101] = 1,
  27.     [105] = 1, [106] = 1, [107] = 1, [109] = 1, [117] = 1, [133] = 1,
  28.     [137] = 1, [138] = 1, [139] = 1, [141] = 1, [145] = 1, [146] = 1,
  29.     [147] = 1, [148] = 1, [149] = 1, [150] = 1, [151] = 1, [153] = 1,
  30.     [154] = 1, [155] = 1, [157] = 1, [161] = 1, [162] = 1, [163] = 1,
  31.     [164] = 1, [165] = 1, [166] = 1, [167] = 1, [168] = 1, [169] = 1,
  32.     [170] = 1, [171] = 1, [172] = 1, [173] = 1, [174] = 1, [175] = 1,
  33.     [177] = 1, [178] = 1, [179] = 1, [180] = 1, [181] = 1, [182] = 1,
  34.     [183] = 1, [185] = 1, [186] = 1, [187] = 1, [189] = 1, [197] = 1,
  35.     [201] = 1, [202] = 1, [203] = 1, [205] = 1, [209] = 1, [210] = 1,
  36.     [211] = 1, [212] = 1, [213] = 1, [214] = 1, [215] = 1, [217] = 1,
  37.     [218] = 1, [219] = 1, [221] = 1, [229] = 1, [233] = 1, [234] = 1,
  38.     [235] = 1, [237] = 1, [245] = 1
  39. };

  40. int main( my $numa, My **$para ) {
  41.     if ( $numa != 2 ) fprintf( stderr, "use:\t%s file\n", $para[0] );
  42.     else explore( $para[1] );
  43. }

  44. /* _____________________ SUB _____________________ */

  45. # define CHARA 8
  46. # define LEN   CHARA + 2
  47. # define isDigit(C) ( C < 'A' )

  48. sub explore (My *file) {
  49.     FILE * fh = fopen( file, "r" );
  50.     if ( !fh ) {
  51.         fprintf( stderr, "No such file: %s\n", file );
  52.         exit(1);
  53.     }

  54.     My $line[LEN] = {0};
  55.     my $hash[123] = {0};

  56.     while ( fgets( $line, LEN, fh ) ) {

  57.         # define hash(I) $hash[(int)$line[I]]
  58.         my $var = 0;
  59.         my $i   = 0;

  60.         for ( ; $i < CHARA; $i++ ) {
  61.             if (   $line[$i] <= '1'
  62.                 || $line[$i] == 'o'
  63.                 || $line[$i] == $line[ $i + 1 ] ) last;

  64.             if ( isDigit( $line[$i] ) ) {
  65.                 $var |= 1 << $i;
  66.                 if ( A[$var] ) last;
  67.             }
  68.             else {
  69.                 hash($i) |= 1 << ( $i + 4 );
  70.                 if ( $i > 3 && B[ hash($i) >> 4 ] ) last;
  71.                 hash($i)++;
  72.             }
  73.         }

  74.         if ( $i == CHARA ) {
  75.             my $dit = 0;
  76.             for ( my $j = 0; $j < CHARA; $j++ ) {
  77.                 if ( !hash($j) ) next;
  78.                 if ( ( hash($j) & 0b1111 ) > 1 ) $dit++;
  79.                 hash($j) = 0;
  80.             }

  81.             if ( $dit < 2 ) fputs( $line, stdout );
  82.         }
  83.         else {
  84.             for ( my $j = 0; $j <= $i; $j++ ) hash($j) = 0;
  85.         }
  86.     }
  87.     fclose(fh);
  88. }

复制代码



karnataka.h
  1. # include <stdio.h>
  2. # include <stdlib.h>

  3. typedef char My;
  4. typedef int my;

  5. # define last break
  6. # define next continue
  7. # define sub  void

  8. sub explore (My*);
复制代码

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2017-11-27 09:51 |显示全部楼层
回复 7# rubyish



大牛

感动啊,终于出手了

膜拜中!             引用江苏卫视的“非诚勿扰”节目中所说:把我领走吧,做饭、擦地我全能干!


确实牛人!是骡子是马拉出来溜溜,太牛啦!!关键是人品超级好!!

放心吧,不逼疯我。绝不再打扰你。不好意思、不好意思!


我初步按照我本次帖子下面新的求助内容测试后,一切正常,输出正确,暂没发现问题

速度效率的对比情况,我正式运行超大文档后,我再贴出结果,一并检查过滤情况。我要留出一定的时间来测试的。



为了让大牛彻底明白我的求助。
特,重新修正了一下求助内容

下面重新贴出我要  求助  的内容   (注意:同1楼的内容,有区别,因为改成纯8位后,求助有些变化。依这次为准)

-----------------------------------------------------------------------------------------------------

已知文档文件是:纯数字+字母混合后的数据        (按大牛的意思,改成该文档只含有8位字符的行)

要求:

只提取不包含数字  1   0  及小写字母  o  的行


并且同时要求删除里面的如下8种条件的行:

1、行中只有一种相同字母的行。如

aaaaaaaa
bbbbbbbb
cccccccc

2、任意位置相同的字母(排除紧挨在一起的情况,这样的情况另说)出现3次及以上(  ≥3  )的行。如

asd3afah         //看里面的 a 位置变化
a3ara6at
eayaha4a


3、任意位置相同字母紧挨在一起出现1次及以上(  ≥1  )的行。 如

aat6yaak          //看里面的 a 位置变化
aaaqwaaa
aa8yukde
aabacdef
aabhefga


4、任意位置(出现两种不同的字符及以上的情况时),其中各自相同字母同时出现2次及以上(  ≥2  )的行。如

asd3afsh         //看里面的a  b  s  f  e  k  h  位置变化
abf56fba
aekeahkh


5、两个以上(  >2  )数字紧挨在一起的行。  如

a762ay39
6234vtys

6、(数字紧挨在一起时,当做是一次),出现3次及以上(  ≥3  )的行。 如

82a34k56
92345678

7、数字紧挨在一起相同数字的行。  如

a22hyrtf
88njrx34

8、任意位置的数字(排除紧挨在一起的情况,这样的情况另说)出现3次及以上(  ≥3  )的行。如

2a3b4c5e
a6c7e9dr



(注: 出现2个及以上相同字符,就叫,紧挨在一起。如  33   aaa  yyyy  )



按上面的要求,应该删除的行:
aaaaaaaa
bbbbbbbb
cccccccc
asd3afah
a3ara6at
eayaha4a
aat6yaak
aaaqwaaa
aa8yukde
aabacdef
aabhefga
asd3afsh
abf56fba
aekeahkh
a762ay39
6234vtys
82a34k56
92345678
a22hyrtf
88njrx34
0abcdefg
1abcdefg
oabcdefg

输出保留的行:
abcdefgh
23abcd45
abcdaefg
2a3bceyu

------------------------------------------------------------------------------------------------------









论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2017-11-27 11:50 |显示全部楼层
回复 7# rubyish



大牛

初步运行了一下。主要是先看看效率如何

非常满意

文档是97.3GB,输出为50.5GB

real    49m51.054s
user    39m50.169s
sys     0m57.501s


















论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2017-11-27 12:25 |显示全部楼层
回复 7# rubyish


大牛

我想把8楼的第6条,改动一下

没改前:
6、(数字紧挨在一起时,当做是一次),出现3次及以上(  ≥3  )的行。 如

82a34k56
92345678

改动后变成:

6、(数字紧挨在一起时,当做是一次),出现1次以上(  >1  )的行,同时还要必须满足另一条件,此时保留下来的行中,继续删除有两组以上(  >2  )的数字的行。

上面的意思做如下说明:

比如源文档:
76a4hytd
76a4h9td
23a78khu
82a34k56
92345678

假如是分开执行的,那么第一步是:(数字紧挨在一起时,当做是一次),出现1次以上(  >1  )的行

此时输出:

76a4hytd
76a4h9td            //  这个就是有两组以上(  >2  )的数字的行的意思   共有三组分别是     76   4    9



接上面的假如继续,此时还要接着执行第二步:同时还要必须满足另一条件,此时保留下来的行中,继续删除有两组以上(  >2  )的数字的行

此时只剩输出

76a4hytd



也就是说,最终目的是 输出    76a4hytd






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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP