我正在尝试将一个阵列单列匹配到另一个阵列并打印这些行。但它一片空白。不知道哪里出错了。个别元素正在印刷...... 寻求一些帮助。代码如下;
#!/usr/bin/perl
use strict;
use warnings;
#use File::Find;
#!/usr/bin/perl
use strict;
use warnings;
# Define file names and its location
my $input = $ARGV[0]; # requires input raw DS8K PU file
############################################################################################
# Section to read config file and extract volumes of user inserted volumegroup
############################################################################################
my $input_PU_config = $ARGV[1]; # requires input config file
my @vg_vol_id; # defining variable for config file
my @interval_data = ('start_time','length');
print "\nEnter the volume group number you need to work upon: "; # I insert number as 8 and it greps "V8" required line from the config file
chomp (my $vol_grp_number = <STDIN>);
open (CONFIG_INFILE,"$input_PU_config_file") or die "Could not open: $!";
while (<CONFIG_INFILE>)
{
if (/ FB 512 / && (/ V$vol_grp_number,/ || /,V$vol_grp_number / || / V$vol_grp_number /)) ## If device is part of multiple VG
{
my @volume_id = split(/\s+/,$_);
push @vg_vol_id, "0x$volume_id[1]";
#print "0x$volume_id[1]\n";
}
}
unshift @vg_vol_id,@interval_data;
#print "@vg_vol_id\n";
close (CONFIG_INFILE);
############################################################################################
# Grab the only vols stats for different intervals and put it in a file
open (INFILE,"$input_file") or die "Could not open: $!";
open (OUTFILE,">$output_file") or die "Could not open: $!";
while (<INFILE>)
{
if (/^volume stats/ .. /^$/)
{
print (OUTFILE "$_");
}
}
close (INFILE);
close (OUTFILE);
###############################################################################################
# the parsed file is stored as @PU_file array element
open (PARSED_PU_FILE,"$output_file") or die "Could not open parsed file: $!";
my @PU_file = <PARSED_PU_FILE>;
###############################################################################################
foreach my $PU_file_line (@PU_file)
{
#chomp ($PU_file_line);
#print "$line\n";
foreach my $line (@vg_vol_id)
{
chomp ($line);
#print "$line\n";
if ( $line =~ m/^$PU_file_line/)
{
print "$PU_file_line\n";
}
}
#print "======================\n";
}
close (PARSED_PU_FILE);
input.txt文件如下所示
unwanted lines
unwanted lines
unwanted lines
unwanted lines
volume stats
start_time 1
length 2
--------
ID
0x00a,1,2,3,4
0x00b,11,12,13,14
0x00c,21,22,23,24
unwanted lines
unwanted lines
unwanted lines
volume stats
start_time 2
length 2
--------
ID
0x00a,31,32,33,34
0x00b,41,42,43,44
0x00c,51,52,53,54
unwanted lines
unwanted lines
unwanted lines
volume stats
start_time 3
length 2
--------
ID
0x00a,61,62,63,64
0x00b,71,72,73,74
0x00c,81,82,83,84
unwanted lines
unwanted lines
unwanted lines
config_input.txt文件如下所示;
unwanted lines
unwanted lines
EP0Vol1000 00a Online Normal Normal 2107-900 FB 512 P0 Standard DS 68.0 - 142606336 V4,V9 142606336 rotateexts PG0 RG0
EP0Vol1000 00b Online Normal Normal 2107-900 FB 512 P0 Standard DS 68.0 - 142606336 V4,V8 142606336 rotateexts PG0 RG0
EP0Vol1001 00c Online Normal Normal 2107-900 FB 512 P0 Standard DS 68.0 - 142606336 V4,V8 142606336 rotateexts PG0 RG0
EP0Vol1001 00d Online Normal Normal 2107-900 FB 512 P0 Standard DS 68.0 - 142606336 V4,V10 142606336 rotateexts PG0 RG0
unwanted lines
unwanted lines
输出空白。
答案 0 :(得分:0)
更改脚本末尾的条件
$line =~ m/^$PU_file_line/
到
$PU_file_line =~ /^$line/