-1

我有一些属性值存储在数组中,如下所示,现在我需要对属性值进行一些检查,建议我如何在 perl 中进行。

@arr1 = `cat passwd.txt|tr ' ' '\n'|egrep -i "maxage|minage"|sort'`;

数组 arr1 包含信息为“maxage=0 minage=0”

在这我需要对maxage的值执行if条件,有没有像下面这样的方法,建议我,因为我是perl的新手。

if ( @arr1[0]|awk -F= '{print $2}' == 0 ) { printf "Then print task done"; }

4

2 回答 2

1

您可以在 Perl 中完成整个过程。例如:

use feature qw(say);
use strict;
use warnings;

my $fn = 'passwd.txt';
open ( my $fh, '<', $fn ) or die "Could not open file '$fn': $!";
my @arr1 = sort grep /maxage|minage/i, split ' ', <$fh>;
close $fh;
if ( (split /=/, shift @arr1)[1] == 0) {
   say "done";
}
于 2017-04-12T18:41:46.550 回答
0

你能试试这个吗?

@arr1 = `cat passwd.txt | tr ' ' '\n' | grep -i "maxage|minage"| sort`;
$x = `$arr1[0] |  awk -F= {print $2}`; // maybe $3 is true index
if ( x == 0 )
  {
      print  "Then print task done";
  }
于 2017-04-12T18:09:31.527 回答