Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi Team,

Im new to perl scripting. I have thousands of file names like below i have pasted

rm 20130119-154557_9417560919_rubika_CANARARE-all.mp3 rm 20130122-151714_9003230528_desigans_RELINST-all.mp3 rm 20130128-110435_9865934829_gowrih_CLUBNEW-all.mp3 rm 20130119-172714_9994641778_gowrih_CLUBNEW-all.mp3 rm 20130110-150044_9833539373_ezhil_CANARARE-all.mp3 rm 20130131-094051_8754558656_selvakumarir_BAXANEW-all.mp3 rm 20130117-154031_9884040442_karthikae_CLUB-all.mp3 rm 20130110-100956_9952927800_bhagatsinghd_RELINST-all.mp3 rm 20130107-184842_9841118822_karthikae_CLUB-all.mp3 rm 20130102-162259_9789096778_babysheelaa_CLUB-all.mp3 rm 20130123-145333_9841169173_Anandkumarc_RELINST-all.mp3 rm 20130125-161408_9841274078_karthikae_CLUB-all.mp3 rm 20130130-094413_9840454410_prithivrajb_RELINST-all.mp3 rm 20130104-133223_2030578020_karthick_DB748-all.mp3 rm 20130107-145805_9884020568_jesinthamary_REL-INS-all.mp3 rm 20130102-162826_9566118210_dhanasekarank_RELINST-all.mp3

while i run this command from a text file

bash -v /path/textfile

it will delete

now i want to write a log file for what are all the files deleted success full... as of now im running this task daily in bash script ... kindly guide me how to do in perl script step by step

Thanks is advance

Replies are listed 'Best First'.
Re: File deletion
by choroba (Cardinal) on May 06, 2013 at 10:55 UTC
    Only keep file names in your textfile, the rm is of no use if you are going to implement this in Perl.
    20130119-154557_9417560919_rubika_CANARARE-all.mp3 20130122-151714_9003230528_desigans_RELINST-all.mp3 20130128-110435_9865934829_gowrih_CLUBNEW-all.mp3 20130119-172714_9994641778_gowrih_CLUBNEW-all.mp3 20130110-150044_9833539373_ezhil_CANARARE-all.mp3 20130131-094051_8754558656_selvakumarir_BAXANEW-all.mp3 20130117-154031_9884040442_karthikae_CLUB-all.mp3 20130110-100956_9952927800_bhagatsinghd_RELINST-all.mp3 20130107-184842_9841118822_karthikae_CLUB-all.mp3 20130102-162259_9789096778_babysheelaa_CLUB-all.mp3 20130123-145333_9841169173_Anandkumarc_RELINST-all.mp3 20130125-161408_9841274078_karthikae_CLUB-all.mp3 20130130-094413_9840454410_prithivrajb_RELINST-all.mp3 20130104-133223_2030578020_karthick_DB748-all.mp3 20130107-145805_9884020568_jesinthamary_REL-INS-all.mp3 20130102-162826_9566118210_dhanasekarank_RELINST-all.mp3

    You can now process the file line by line in Perl. For each line, you remove the end-of-line, try to remove the file and report the success:

    #!/usr/bin/perl use warnings; use strict; my $filename = '1.txt'; my $logfile = '1.log'; open my $INPUT, '<', $filename or die "$filename: $!"; open my $LOG, '>', $logfile or die "$logfile: $!"; while (my $line = <$INPUT>) { chomp $line; my $status = unlink $line; my $error = 'OK'; $error = $! unless $status; print $LOG "$line: $error\n"; } close $LOG;
    لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
      Thanks for your support San..

      My last name also san :)

        Where i have to mention the text file path and log file path pls explain me

        /home/san/Desktop/file.txt

        /home/san/Desktop/test/log.txt