【发布时间】:2013-11-26 04:34:21
【问题描述】:
我正在写 perl 脚本,其中基本上想要打开一个包含许多字符串的文件(一行中的一个字符串)并比较这些字符串中的每一个是否存在于另一个文件(搜索文件)中并打印它的每次出现。我已经为一个特定的字符串查找编写了以下代码。如何改进它以获取文件中的字符串列表。
open(DATA, "<filetosearch.txt") or die "Couldn't open file filetosearch.txt for reading: $!";
my $find = "word or string to find";
#open FILE, "<signatures.txt";
my @lines = <DATA>;
print "Lined that matched $find\n";
for (@lines) {
if ($_ =~ /$find/) {
print "$_\n";
}
}
【问题讨论】:
-
两个文件中的字符串是否可以同时放入内存?
-
您打开 filetosearch.txt 是为了写入,而不是读取。
-
是的,这些文件大约有 500 行,适合内存。好的,我将 filetosearch.txt 更正为只读为:open(DATA, "
-
grep -F -f signatures.txt filetosearch.txt -
grep -C3 -F -x -f file1 file2
标签: perl