用perl怎么计算一个文本中的每一行包含另一文本的单词数.例如,文本1:hello nice to meet you how are you thank you where are you from 文本2:niceyoulove我想得到的结果是文本1中第一行包含2个文本2中单词,
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 00:30:27
![用perl怎么计算一个文本中的每一行包含另一文本的单词数.例如,文本1:hello nice to meet you how are you thank you where are you from 文本2:niceyoulove我想得到的结果是文本1中第一行包含2个文本2中单词,](/uploads/image/z/5440028-68-8.jpg?t=%E7%94%A8perl%E6%80%8E%E4%B9%88%E8%AE%A1%E7%AE%97%E4%B8%80%E4%B8%AA%E6%96%87%E6%9C%AC%E4%B8%AD%E7%9A%84%E6%AF%8F%E4%B8%80%E8%A1%8C%E5%8C%85%E5%90%AB%E5%8F%A6%E4%B8%80%E6%96%87%E6%9C%AC%E7%9A%84%E5%8D%95%E8%AF%8D%E6%95%B0.%E4%BE%8B%E5%A6%82%2C%E6%96%87%E6%9C%AC1%EF%BC%9Ahello+nice+to+meet+you+how+are+you+thank+you+where+are+you+from+%E6%96%87%E6%9C%AC2%EF%BC%9Aniceyoulove%E6%88%91%E6%83%B3%E5%BE%97%E5%88%B0%E7%9A%84%E7%BB%93%E6%9E%9C%E6%98%AF%E6%96%87%E6%9C%AC1%E4%B8%AD%E7%AC%AC%E4%B8%80%E8%A1%8C%E5%8C%85%E5%90%AB2%E4%B8%AA%E6%96%87%E6%9C%AC2%E4%B8%AD%E5%8D%95%E8%AF%8D%2C)
用perl怎么计算一个文本中的每一行包含另一文本的单词数.例如,文本1:hello nice to meet you how are you thank you where are you from 文本2:niceyoulove我想得到的结果是文本1中第一行包含2个文本2中单词,
用perl怎么计算一个文本中的每一行包含另一文本的单词数.
例如,文本1:hello nice to meet you how are you thank you
where are you from
文本2:nice
you
love
我想得到的结果是文本1中第一行包含2个文本2中单词,第二行包含1个
用perl怎么计算一个文本中的每一行包含另一文本的单词数.例如,文本1:hello nice to meet you how are you thank you where are you from 文本2:niceyoulove我想得到的结果是文本1中第一行包含2个文本2中单词,
第2个文本是每行只包含一个单词吗?
先读文件2,每行存到数组1;
读文件1,构建哈希,行数为key,每行对数组进行循环,正则匹配:$line =~ /\b$word\b/; 如果匹配,这个行的hash值就加1。
我假设你第二个文件中的单词没有重复,第一个文件每行的重复单词也只算出现一次;
这些细节你自己改就行了。...
全部展开
先读文件2,每行存到数组1;
读文件1,构建哈希,行数为key,每行对数组进行循环,正则匹配:$line =~ /\b$word\b/; 如果匹配,这个行的hash值就加1。
我假设你第二个文件中的单词没有重复,第一个文件每行的重复单词也只算出现一次;
这些细节你自己改就行了。
收起
用法 filter.pl 1.txt 2.txt
#!/usr/bin/perl
open myfile,@ARGV[0];
open filter,@ARGV[1];
@myfilelist=
@filterlist=
foreach $myfilelist(@myfilelist)
{
$...
全部展开
用法 filter.pl 1.txt 2.txt
#!/usr/bin/perl
open myfile,@ARGV[0];
open filter,@ARGV[1];
@myfilelist=
@filterlist=
foreach $myfilelist(@myfilelist)
{
$count=0;
foreach $filterlist(@filterlist)
{
chomp $filterlist;
if($myfilelist=~/$filterlist/i) {$count++;}
}
print $myfilelist."=".$count."\n";
}
收起
for $k(split /\n/,`cat text2`){ $line_no=0; for $l(split /\n/,`cat txt1`){ $line_no++; @arr=$l=~/\s+/; @match=grep {/^$k$/} @arr; print qq/$k appears $match times in line $line_no\n/; } }