免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Windows19
打印 上一主题 下一主题

[文本处理] 计算不同字符串类型出现次数 [复制链接]

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
31 [报告]
发表于 2016-12-27 15:25 |只看该作者
本帖最后由 sunzhiguolu 于 2016-12-27 15:26 编辑

回复 30# Windows19
  • #!/usr/bin/perl
  • use strict;
  • use warnings;
  • my ($NS, %hKeys) = (0, ());
  • while (<>){
  •     print "|||$_" if ($. == 134084);    # 这里加个断点
  •     if (@ARGV){
  •         next if (/\A\s*\z/);
  •         chomp;
  •         my $k = /\A\d/ ? 'N' : 'S';
  •         $hKeys{$k}{$_} = 1;
  •         next;
  •     }
  •     my $N = grep {$hKeys{'N'}{$_}} /\d+/g;
  •     my $S = grep {$hKeys{'S'}{$_}} /[a-z]+/gi;
  •     $NS++ if ($S and $N);
  •     $hKeys{'S'}{'!C'}++ if ($S);
  •     $hKeys{'N'}{'!C'}++ if ($N);
  • }
  • print join ("\n", "Num Str : $NS", "Strings : $hKeys{'S'}{'!C'}", "Numbers : $hKeys{'N'}{'!C'}");


论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
32 [报告]
发表于 2016-12-27 15:25 |只看该作者
本帖最后由 sunzhiguolu 于 2016-12-27 15:27 编辑

回复 30# Windows19
  • #!/usr/bin/perl
  • use strict;
  • use warnings;
  • my ($NS, %hKeys) = (0, ());
  • while (<>){
  •     print "|||$_" if ($. == 134084);    # 这里加个断点
  •     if (@ARGV){
  •         next if (/\A\s*\z/);
  •         chomp;
  •         my $k = /\A\d/ ? 'N' : 'S';
  •         $hKeys{$k}{$_} = 1;
  •         next;
  •     }
  •     my $N = grep {$hKeys{'N'}{$_}} /\d+/g;
  •     my $S = grep {$hKeys{'S'}{$_}} /[a-z]+/gi;
  •     $NS++ if ($S and $N);
  •     $hKeys{'S'}{'!C'}++ if ($S);
  •     $hKeys{'N'}{'!C'}++ if ($N);
  • }
  • print join ("\n", "Num Str : $NS", "Strings : $hKeys{'S'}{'!C'}", "Numbers : $hKeys{'N'}{'!C'}");


论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
33 [报告]
发表于 2016-12-27 15:26 |只看该作者
将执行结果贴出来我看下。

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
34 [报告]
发表于 2016-12-27 15:34 |只看该作者
sunzhiguolu 发表于 2016-12-27 15:26
将执行结果贴出来我看下。

$ perl ./abc.pl b a
Use of uninitialized value in concatenation (.) or string at abc.pl line 22, <> line 47.
Use of uninitialized value in concatenation (.) or string at abc.pl line 22, <> line 47.
Num Str : 0
Strings :
Numbers :
$

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
35 [报告]
发表于 2016-12-27 15:36 |只看该作者
sunzhiguolu 发表于 2016-12-27 15:26
将执行结果贴出来我看下。

$ cat a
kkwrhuhej0rfgr[g'e]r5686811553354534651561562252555454554[tgjreigk
jdbgeklrjhge78y/'\]r'\5686811553354534651561562252555454554]'g/e]r\t'kt5g']e\t[4]yg.;'vf
'/\'re \e\rglljker er\ l;gy\e'ghke]\['5;l4yhgl\rt'h 578987456516516516564654465654tlhgtrlhg
236587987964556112312365656546335746515 '/t\hytr'htmrkhlt;hbjntrklgj
mfgre'tet;\t'tg,er\a'g;.e'r;g ergergermg  236587987964556112312365656546335746515 hrthrth\/h/rt\h
grjengle43klhtgnldgd;g\';w\wf   gh hllktgregKHGKJHGKgkigkbKGKF578987456516516516564654465654
gffdjkgblhnlk5686811553354534651561562252555454554dfgvdfgvdfg
/'\;.;''\.\. \/'.\.''\3156855556887945655564\';\.;\'./\
DFGVGf578987456516516516564654465654SDGFDGGGGGGGGG
fesr-jklhsgherl35t4jgferg645er8te4t68t45e46t4eg57898745651651646564rger63465566
/'\ergre'g\retg;retg;e[p'4ktgmef'g236587987964556112
grg4354tgveknrgler]\t';34\tfe651561562252555454554
ftdgerertr36tglkjver;tgk;46gl;mvf98796455611231236565gfdgdg
29058036y3442-56y8352fbwekryewkhgfbsiklkeyfg>=5ttgrkeltgjrekt73408tgre
sdfmslfmkwo340ifmks'/.'we.fds'.f'ws.fwf/'\./\sjfhiuesrtewtfrhfkjsyf/'\\/\
2325252452452543 22424<skjbfistewgfbsfilsefuslufhuwrefgv8932 4723985
32478230752398 skldfnisyrgewfbsdlfewofgksflisfygcb ';.....\;.
sjfhiuesrtewtfrhfkjsyf  '\/EWR/\W'/REF
FEW\'2/35RF\SF skjbfistewgfbsfilsefuslufhuwrefgv
\\453TERT34\3RT0skldfnisyrgewfbsdlfewofgksflisfygcb
];'\';GCF68KJGBJKL;\';JKLL'\\n/sjfhiuesrtewtfrhfk
skjbfistewgfbsfilsefu];'\';GCF68KJGBJKL;\';J
vh678yiuh88679skldfnisyrgewfbsdlfewofgks/'\/'\
jkhl. lili fbwekryewkhgfbsiklk980
ff3\23\rd 32rr\'fbwekryewkhgfbsiklkeyfg\'we236587987964556112312365656546335746515r
'/\w'r234rf'\sjfhiuesrtewtfrhfkjsyf/'\/3156855556887945655564sfds
2544325';\';fbwekryewkhgfbsiklkeyfg435sjfhiuesrtewtfrhfkjsyf
]'f/]ew;'532]3156855556887945655564sfesfs578987456516516516564654465654
ewfkwekr2w34per315685555688794565556\/@fbwekryewkhgfbsiklkeyf
ewfkwekr2w34per4fbwekryewkhgfbsiklkey\/@315685555688794565556

$ cat b
3156855556887945655564
578987456516516516564654465654
236587987964556112312365656546335746515
5686811553354534651561562252555454554
000000000000000000000
fbwekryewkhgfbsiklkeyfg
sjfhiuesrtewtfrhfkjsyf
skjbfistewgfbsfilsefuslufhuwrefgv
skldfnisyrgewfbsdlfewofgksflisfygcb
wDSTKELTHRGVSLkajlfesrhgerlkFfF
wwwwwwwwwwww

$ perl ./abc.pl b a
Use of uninitialized value in concatenation (.) or string at ./abc.pl line 22, <> line 47.
Use of uninitialized value in concatenation (.) or string at ./abc.pl line 22, <> line 47.
Num Str : 0
Strings :
Numbers :
$

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
36 [报告]
发表于 2016-12-27 15:37 |只看该作者
本帖最后由 Windows19 于 2016-12-27 15:38 编辑
sunzhiguolu 发表于 2016-12-27 15:26
将执行结果贴出来我看下。


上面的就是执行结果

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
37 [报告]
发表于 2016-12-27 15:41 |只看该作者

b文件原先不是用空行分隔吗?

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
38 [报告]
发表于 2016-12-27 15:44 |只看该作者

在b文件最后那个数字串下面加一行空行

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
39 [报告]
发表于 2016-12-27 15:50 |只看该作者
moperyblue 发表于 2016-12-27 15:44
在b文件最后那个数字串下面加一行空行

b在最后那个数字串后面加1行 加2行空行都试了哦

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
40 [报告]
发表于 2016-12-27 15:50 |只看该作者
回复 36# Windows19
cat -n a
cat -n b

我看下,执行结果。

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP