Perl 如何搜索一个文件,然后将带有搜索关键字的行输出到一个新文件

Perl 如何搜索一个文件,然后将带有搜索关键字的行输出到一个新文件,perl,Perl,我试图用perl搜索一个带有关键字的大文件,然后将关键字出现的所有行输出到一个新行中 以下命令将包含关键字的所有行打印到outputFile.txt。输入文件作为参数传递给脚本 findkeyword.pl #!/usr/bin/perl use strict; use warnings; open OUTPUT, ">outputFile.txt"; while (my $line = <>) { if($line =~ m/keyword/){ pr

我试图用perl搜索一个带有关键字的大文件,然后将关键字出现的所有行输出到一个新行中

以下命令将包含
关键字的所有行打印到
outputFile.txt
。输入文件作为参数传递给脚本

findkeyword.pl

#!/usr/bin/perl
use strict;
use warnings;

open OUTPUT, ">outputFile.txt"; 
while (my $line = <>) {
     if($line =~ m/keyword/){
     print OUTPUT $line;
     }
}

编辑:正如@Kenosis在评论中所说

最好使用字典范围的$fh作为文件句柄,比如
open(my$fh,“>”,“outputFile.txt”)
参考:


如果要将关键字存储在变量中,您可能需要首先对其调用,或者将其括在
\Q..。\E

下面将把包含
关键字的所有行打印到
outputFile.txt
。输入文件作为参数传递给脚本

findkeyword.pl

#!/usr/bin/perl
use strict;
use warnings;

open OUTPUT, ">outputFile.txt"; 
while (my $line = <>) {
     if($line =~ m/keyword/){
     print OUTPUT $line;
     }
}

编辑:正如@Kenosis在评论中所说

最好使用字典范围的$fh作为文件句柄,比如
open(my$fh,“>”,“outputFile.txt”)
参考:


如果要将关键字存储在变量中,可能需要首先对其调用,或者将其括在
\Q..。\E

好的,我已运行脚本,但无法打开输入文件?@user1597452是否正确地为脚本提供了参数列表?有错误吗?@Cthulhu-为什么不使用三个参数
open
w/a词汇范围的fh?另外,
m/\Qkeyword\E/
是否有助于避免在“关键字”中使用任何特殊字符?@Kenosis该
运算符简洁,允许使用多个文件,而且不费吹灰之力:)<代码>\Q…\E
quotemeta
,我会提到这一点。Thanks@Cthulhu-对不起。。。我指的是输出文件。
确实很有意义。谢谢好的,我已经让脚本运行,但我无法打开输入文件?@user1597452您是否正确地为脚本提供了参数列表?有错误吗?@Cthulhu-为什么不使用三个参数
open
w/a词汇范围的fh?另外,
m/\Qkeyword\E/
是否有助于避免在“关键字”中使用任何特殊字符?@Kenosis该
运算符简洁,允许使用多个文件,而且不费吹灰之力:)<代码>\Q…\E
quotemeta
,我会提到这一点。Thanks@Cthulhu-对不起。。。我指的是输出文件。
确实很有意义。谢谢