我有兩個文件,分別是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