AH HA ...
I got it figured out :)
Here is the code, I will comment it so other people can know: #!/usr/bin/perl -w
while(<STDIN>)
{
my($input) = $_; #Read strings in on the command line
chomp($input); #Removes trailing line feedif ($input =~ "DONE") #If string is contains DONE exit
{
exit;
}print "#################\n"; print "### OUTPUT IS ###\n"; print "#################\n"; print "### "; print $input =~ /(\d+);(\d+);(\d+);(\d+)/; ## Look for a pattern that matchs number;number;number;number ## \d means match a number ## + means any amount of numbers ## /()/ assigns the match to $1,$2 and so on print "\n"; print "\$1 = $1\n"; print "\$2 = $2\n"; print "\$3 = $3\n"; print "\$4 = $4\n"; print "\n"; print "#################\n"; print "\n\n\n";
}
So when I run the script is passed it "Memory Usage: 1234;678;000;4567" which is sort of like the out put from a nagios memory check on windows boxes ;)
Now if you simple print: print $input it will equal "Memory Usage: 1234;678;000;4567" print $input =~ /(\d+);(\d+);(\d+);(\d+)/; it will produce "12346780004567"
which may be confusing ... because what happens to $1 ? Remember because "/(pattern)/" is supposed to assign the match to a $1 and $2 and so on. It actually does ... it just gets printed with out any spaces.
If you print $1,$2,$3,$4 you will see how they are divided: --snip-- [EMAIL PROTECTED] Desktop]$ ./rgperl Memory Usage: 1234;678;000;4567 ################# ### OUTPUT IS ### ################# ### 12346780004567 $1 = 1234 $2 = 678 $3 = 000 $4 = 4567
################# --snip--
Hope this helps other people figure out where the arguments can come from :)
Michael.
Michael Gale wrote:
Hello,
I wrote this little test script to my regular expressions:
#!/usr/bin/perl -w
while(<STDIN>) { my($input) = $_; chomp($input);
#my($input,$check) = $input =~ m/(.*\|)(.*)$/;
if ($input =~ "DONE") { exit; }
$input =~ /.*(\d+)/;
print "#################\n"; print "### OUTPUT IS ###\n"; print "#################\n"; print "### "; print $_; print "\n"; print "#################\n"; print "\n\n\n";
}
Michael.
Michael Gale wrote:
Hello,
I am going to start playing around with perl regular expressions but first have some questions I am hoping someone on the list can answer ?
1. Can I test them from the command line ?
echo "some string of text" | perl place_regular_expression_here
2. How would I go about producing arguments are out put, for example:
echo "Memory Usage: 25% used warning 75%" | perl 'Memory.Usage:.\d+'
The about would produce "Memory Usage: 25" but I only want to output the 25 but I also need to make sure that the first part contains "Memory Usage:" ?
Thanks.
Michael.
_______________________________________________ clug-talk mailing list [email protected] http://clug.ca/mailman/listinfo/clug-talk_clug.ca Mailing List Guidelines (http://clug.ca/ml_guidelines.php) **Please remove these lines when replying
_______________________________________________ clug-talk mailing list [email protected] http://clug.ca/mailman/listinfo/clug-talk_clug.ca Mailing List Guidelines (http://clug.ca/ml_guidelines.php) **Please remove these lines when replying
_______________________________________________ clug-talk mailing list [email protected] http://clug.ca/mailman/listinfo/clug-talk_clug.ca Mailing List Guidelines (http://clug.ca/ml_guidelines.php) **Please remove these lines when replying

