对输入文件进行操作的 Perl 脚本

对输入文件进行操作的 Perl 脚本

我正在尝试编写一个脚本,该脚本将文件作为输入,读取该文件的每一行,根据文件内容的值执行查找,并将输出写入不同的文件。到目前为止我所拥有的没有任何作用。

我现在并不关心让代码看起来漂亮或遵守良好的编程规则。该脚本将使用一次来遍历数百行输入文件,并且不会再次使用。

#!/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 中使用它会更惯用文件::查找或者文件::查找::规则而不是掏钱。

相关内容