首先,我是perl上的一个菜鸟,我试图在互联网上找到这个问题的答案,但无法获得(或了解)它... 所以,我有一个脚本可以扫描文本文件并写入除A开头的所有行。
#!/usr/bin/perl
use strict;
use warnings;
open (my $file, "<", "/file.txt") or die "cannot open < file.txt $!";
while (<$file>) {
unless (/^A/) {
print;
}
}
有效。但是我在终端中得到了这个脚本的结果。现在,我只想将这些结果保存在新的文本文件中。 有人能帮助我吗?
非常感谢!
答案 0 :(得分:2)
只需打开另一个文件并打印数据即可。
#!/usr/bin/env perl
use strict;
use warnings;
my $infile = 'input.txt';
my $outfile = 'output.txt';
open my $infh, "<", $infile or die "Can't open $infile: $!";
open my $outfh, ">", $outfile or die "Can't open $outfile: $!";
while (<$infh>) {
print $outfh $_ unless /^A/;
}
close($infh);
close($outfh);
但是,一般来说,你可以使用一些perl magic与shell重定向相结合。整个脚本将变得简单oneliner:
$ perl -ne 'print $_ unless /^A/;' input.txt > output.txt