У меня есть файл со следующим содержимым:
TIME
DATE TIME DAY
191227 055526 FRI
RC DEV SERVER
RC1 SERVER1
RC2 SERVER2
RC3 SERVER3
END
Я получаю значения аргументов из этого файла, скажем, если я передам DATE
в качестве аргумента скрипту, я получаю соответствующее значение DATE
. то есть, 191227
Когда я передаю несколько аргументов, скажите DATE
, DAY
, я должен получить значения:
DATE=191227
DAY=FRI
Но я получаю вот что:
DATE=191227
DAY=NULL
И если я передам RC
в качестве аргумента, я должен получить: RC=RC1,RC2,RC3
Сценарий выглядит следующим образом:
#!/usr/bin/perl
use strict;
use Data::Dumper;
print Dumper(\@ARGV);
foreach my $name(@ARGV){
print "NAME:$name\n";
my ($result, $start, $stop, $width) = "";
while(my $head = <STDIN>)
{
if( $head =~ (m/\b$name\b/g))
{
$start = (pos $head) - length($name);
$stop = (pos $head);
my $line = <STDIN>;
pos $head = $stop+1;
$head =~ (m/\b/g);
$width = (pos $head) - $start;
$result = substr($line,$start,$width);
}
}
$result =~ s/^\s*(.*?)\s*$/$1/;
print "$name=";
$result = "NULL" if ( $result eq "" );
print "$result\n";
}
Может кто-нибудь помочь мне получить значения если я передам несколько аргументов также, если предположим, что значение аргумента содержит данные в несколько строк, то должны быть напечатаны значения, разделенные запятыми (например: для RC
, RC=RC1,RC2,RC3
).