Blame view
tools/scripts/RandomRegex.pl
895 Bytes
e6be5137b reinitialized pro... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#!/usr/bin/perl use strict; use warnings; my $file; my @regexTab; my $sepRegexFile=":=:"; my $sepPoss="<==>"; if($#ARGV != 0 || !$ARGV[0]){ print STDERR "BAD USAGE : RandomRegex.pl <regex_file> "; exit(1); } open($file, $ARGV[0]) or die("Cannot open : $ARGV[0] "); while(<$file>){ chomp $_; if(!/^$/ && !/^(\s+)$/){ my @splittedLine = split(/$sepRegexFile/, $_); if($#splittedLine == 1){ my @tab = ($splittedLine[0], $splittedLine[1]); push(@regexTab, \@tab); } else{ die("Bad format $ARGV[0] : $_"); } } } close($file); while(<STDIN>){ for(my $i = 0; $i <= $#regexTab;$i++){ my @tmpTab = @{$regexTab[$i]}; if($tmpTab[1] =~ /$sepPoss/){ my @poss = split(/$sepPoss/,$tmpTab[1]); #choose a possibility with a random process my $id = rand @poss; $_ =~ s/$tmpTab[0]/$poss[$id]/ge; } else{ $_ =~ s/$tmpTab[0]/$tmpTab[1]/ge; } } print $_; } |