At 04:12 PM 2/8/02 -0800, Scott Lutz wrote:
>This should be a weekly thing :
>See who can send in the most useful Perl one liner!

Hie thee to the Fun With Perl list (see lists.perl.org).  This is not 
necessarily the stuff of beginners.

>So to start it off, I would like some suggestions on some "not so
>cryptic" one liner methods to do the following :

One-liners and "not so cryptic" don't always go together, you realize...

>#!/usr/bin/perl -w
>use strict;
>
>opendir(TEMP_DIR, "/home/slutz/temp");
>         my @items = grep(/\.BAD/,readdir(TEMP_DIR));
>closedir(TEMP_DIR);
>
>my ($file, $line);
>
>foreach $file (@items) {
>         print "Going into file : $file\n";
>         open(FIN, $file) || warn "cant open the damn file : $!";
>         while ( $line = <FIN> ){
>                 if ( $line =~ m'[EMAIL PROTECTED]' ) {
>                         rename "/home/slutz/temp/$file",
>"/home/slutz/temp/bad_email/$file" || die "$!";
>                         print "moved file /home/slutz/temp/$file to
>/home/slutz/temp/bad_email/$file\n";
>                 }
>         }
>         close(FIN);
>}
>
>
>Thanks in advance!

Okay, I'll play:

cd /home/slutz/temp; perl -nle '(rename $ARGV, "bad_email/$ARGV" or die $!) 
and print "Moved $ARGV" and close ARGV if /looking_glass\@telus\.net/' *.BAD

If you don't have to die on bad rename()s then you can just:

perl -nle 'rename $ARGV, "bad_email/$ARGV" and print "Moved $ARGV" if 
/looking_glass\@telus\.net/' *.BAD

I've also corrected several errors in the original code :-)


--
Peter Scott
Pacific Systems Design Technologies
http://www.perldebugged.com


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to