Я бы сделал это в perl
, потому что мне кажется, что так понятнее:
#!/usr/#bin/env perl
use strict;
use warnings;
use Data::Dumper;
my ( $pattern_file_name, $process_file_name ) = @ARGV;
open ( my $patterns_file, '<', $pattern_file_name ) or die $!;
my @matches = map { [split] } <$patterns_file>;
close ( $patterns_file );
print "Using:\n";
print Dumper \@matches;
#my @matches = ( [ '311', '2222' ], [ '833', '7777' ], [ 'Jam', '33333' ] );
#read main file
my @results;
open ( my $input, '<', $process_file_name ) or die $!;
#iterate a line at a time.
while ( my $line = <$input> ) {
GROUP:
for my $id ( 0 .. $#matches ) {
#Check each set of expressions.
foreach my $expression ( @{ $matches[$id] } ) {
#move to the next group if any don't match
next GROUP unless $line =~ m/$expression/;
}
#didn't get skipped, so must have matched all.
push( @{ $results[$id] }, $line );
}
}
print Dumper \@results;
print "\n$_\n" for @results;
close ( $input );
По возможности всегда следует использовать системный менеджер пакетов. Есть безопасный способ получить более новые версии Python на CentOS / RHEL в виде подходящих пакетов RPM. Он называется IUS project , и мы предлагаем несколько версий Python.
После настройки репо вы можете получить Python 3.5, выполнив команду yum install python35u
. После этого у вас будет доступна команда python3.5
, а также команда pyvenv-3.5
для создания виртуальных сред .