- 论坛徽章:
- 12
|
本帖最后由 523066680 于 2018-09-21 15:09 编辑
- =info
- Code by 523066680/vicyang
- 2018-09
- =cut
- use utf8;
- use Encode;
- use File::Slurp;
- use File::Basename qw/basename/;
- STDOUT->autoflush(1);
- # 读取关键字
- my $raw = load( "key.txt" );
- my @keys = split(/\r?\n/s, $raw );
- printf "Words:\n\t%s\n", encode('gbk', join(",", @keys));
- # 读取文本
- my $fold = "./txt";
- my @files = glob "${fold}/*.txt";
- my %book;
- grep { $book{ $_ } = load( $_ ) } ( sort @files );
- print "\n";
- open my $fh, ">:raw:crlf", "result.txt";
- select $fh;
- my @arr;
- my $tmp;
- for my $k ( @keys )
- {
- printf "%s\n", encode('gbk', $k);
- for my $bk ( sort keys %book )
- {
- @arr = ();
- printf " %s:\n", basename($bk);
- $tmp = $book{ $bk };
- grep { push @arr, ( /([^。!!?]*$k[^。!!?]*)/g ) } split( /\r?\n/, $tmp );
- grep { s/$k/[$k]/ } @arr;
- grep { printf " %s\n", encode('gbk', $_) } @arr;
- }
- }
- close $fh;
- sub load
- {
- my $file = shift;
- my $s = read_file($file, {binmode => ":raw"} );
- if ( $s eq encode('utf8', decode('utf8', $s)) ) {
- $s =~s/^\xEF\xBB\xBF//;
- return decode('utf8', $s);
- } else {
- return decode('gbk', $s);
- }
- }
复制代码
输出结果在Result.txt
部分结果转成论坛格式:
万不得已
1.txt:
...万不得已
1、他不会向你借钱,除非万不得已
2、不到万不得已,我是不会这样做的
3、王荣病到万不得已的时候,才肯吃药、打针
4、一般说,老虎并非天生就吃人,只是万不得已而为之
5、这是他最珍爱的传家之宝,不到万不得已,是绝不肯轻易变卖的
6、不在万不得已的情况下,绝对不要显灵,特别是不要为了虚荣
2.txt:
3.txt:
水浒传.txt:
侃侃而谈
1.txt:
...侃侃而谈
1、畅开心扉是为了虚荣,为了侃侃而谈,为了得到别人的信赖,为了交换秘密
2、勇气是能站起来侃侃而谈
3、他们俩又是探头偷觑,又是评短论长,又是侃侃而谈,简直就象两个老知交
4、一位称职的外交人员,定能在重要场合为国家利益侃侃而谈
5、想不到一向慌乱的他,在会议上陈述理由时,竟能侃侃而谈
2.txt:
3.txt:
1、他对这件事情侃侃而谈时,常常表现出老成持重的样子
水浒传.txt:
满目凄凉
1.txt:
2.txt:
满目凄凉
1、富饶的鱼米之乡被鬼子糟踏得满目凄凉
2、走进山沟,满目凄凉,到处都是残破不堪的景象
3、他踏上荒废多年的老城墙,满目凄凉
4、吹散一瓣瓣温婉桃花,满目凄凉,归去路,泪界落腮,心,被一根无名的弦触动了,遂痛到不能自己
5、一个窗架上突出一根生锈的铁棒,真是满目凄凉.6、满目凄凉的惨状
3.txt:
水浒传.txt:
|
|