【发布时间】:2010-12-03 12:28:46
【问题描述】:
我的问题可能很简单,但我完全是新手。我想在多个文本文件的内容中搜索特定短语,然后在屏幕上显示找到的行。我已经学会了如何处理单个文件。例如,如果我想搜索一个单词,在 F 的根目录下名为“wyvern.txt”的文本文件中说“Okay”。以下代码有效:
#!/usr/bin/perl
$file = 'F:\wyvern.txt';
open(txt, $file);
while($line = <txt>) {
print "$line" if $line =~ /Okay/;
}
close(txt);
但是如果我想在两个文本文件中搜索相同的短语,分别说“wyvern”和“casanova”,该怎么办?或者F的根目录下的“novels”目录中的所有文件如何.
任何帮助将不胜感激。 提前致谢
迈克
编辑:
哈哈,我终于想通了如何在目录中的所有文件中搜索模式匹配:) 以下代码效果很好:
#!/usr/bin/perl
@files = <F:/novels/*>;
foreach $file (@files) {
open (FILE, "$file");
while($line= <FILE> ){
print "$line" if $line =~ /Okay/;
}
close FILE;
}
【问题讨论】:
-
你真的需要它在 Perl 中吗?如果你使用的是类 Unix 操作系统,你可以谷歌如何使用 grep。
-
考虑到
$file中的路径,我认为它们不是
标签: perl