입력 파일에서 작동하는 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에서 사용하는 것이 더 관용적이기는 하지만파일::찾기또는파일::찾기::규칙비용을 지불하는 대신.

관련 정보