我正在尝试编写一个脚本,该脚本将文件作为输入,读取该文件的每一行,根据文件内容的值执行查找,并将输出写入不同的文件。到目前为止我所拥有的没有任何作用。
我现在并不关心让代码看起来漂亮或遵守良好的编程规则。该脚本将使用一次来遍历数百行输入文件,并且不会再次使用。
#!/usr/bin/perl
#
$in_file = $ARGV[1];
$out_file = '<my_output>.out';
open(IN, "< $in_file");
while(<IN>)
{
print "input $in_file \n";
find /<directory> -type f -name $_ -print >> $out_file;
}
答案1
#!/usr/bin/env perl
use strict;
use warnings;
use Getopt::Long qw(GetOptions);
GetOptions( 'dir=s' => \my $Flag_Directory ) or exit 1;
die "Usage: $0 [--dir=d] inputfile outputfile\n" if @ARGV < 2;
$Flag_Directory = '/etc/' if !defined $Flag_Directory;
$Flag_Directory = quotemeta($Flag_Directory);
my $output_file = pop @ARGV;
open my $outfh, '>', $output_file
or die "$0: could not write '$output_file': $!\n";
while (readline) {
chomp;
print "input: '$_'\n";
my $filename = quotemeta($_);
print $outfh qx(find $Flag_Directory -type f -name $filename -print);
}
虽然在 Perl 中使用它会更惯用文件::查找或者文件::查找::规则而不是掏钱。