我有两个文件,分别是a.txt
和b.txt
。我的任务是搜索b.txt
中的所有字符串a.txt
。如果我在a.txt
和b.txt
的字符串之间有任何匹配,那么我想要从文件b.txt
中打印对应于该字符串的行以及它的下一行。如何提取一个匹配字符串和下一行的行?
我一直在尝试下面提到的代码,但问题是它不打印任何东西。你能否指出我的问题并提出解决方法?
open fh, "<", "b.txt" or die $!;
open fh1, "<", "a.txt" or die $!;
my $array1 = < fh>;
my $array2 = < fh1>;
while (my $array1 = < fh>) {
if ($array1 =~ m/$array2/i) {
print $array1;
print scalar < fh>;
}
}
非常感谢BSen,它的工作原理但是,一旦a.txt的第一个元素被搜索到了,我想将匹配的数据打印到另一个文件中。即在a1.txt中搜索到的第一个元素,在a2.txt中搜索的第二个元素,从而出现。目前你的帮助我能够将所有元素保存在一个文件中。 – 2012-08-01 06:51:33
你能否帮我修改你给出的代码来完成我上面评论中提到的任务 – 2012-08-03 00:26:34
如果我明白你想要什么,那么在循环外添加一个变量,在每次匹配时增加一个变量并打开句柄到新文件(使用变量形成名称,例如a1,a2 ...),然后写入并关闭它 – BSen 2012-08-03 05:49:46