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;
 }
-2
16.11.2018, 21:55
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 было бы более идиоматично использовать вместо обстрела File :: Find или File :: Find :: Rule .

1
28.01.2020, 05:17

Теги

Похожие вопросы