Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.33 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. #script to show and/or fix wrong filenames in my music folder.
  4. #by $uicide
  5.  
  6. use warnings;
  7. use strict;
  8.  
  9.  
  10. my $replace = 0;
  11. my $show = 0;
  12. my $help = 1;
  13. foreach (@ARGV) {
  14.     $help = 0;
  15.     if($_ eq "--rename")
  16.     {
  17.         $replace = 1;
  18.     }
  19.     if($_ eq "--show")
  20.     {
  21.         $show = 1;
  22.     }  
  23.     if($_ eq "--help")
  24.     {
  25.         $help= 1;
  26.     }
  27. }
  28.  
  29. if($help == 1)
  30. {
  31.     print "Usage:\n./fix.pl [--show] [--raname]\n";
  32. }
  33.  
  34. if($show == 1)
  35. {
  36.     process_files (".");
  37. }
  38.  
  39. sub process_files {
  40.     my $dirname = shift;
  41.     #print "DIR: $dirname\n";
  42.        
  43.     opendir(DIR, $dirname) or die "can't opendir $dirname: $!";
  44.     my @files = grep { !/^\.{1,2}$/ } readdir (DIR);
  45.     #while (defined(my $file = readdir(DIR)))
  46.      for (@files)
  47.     {    
  48.         my $file = $_;
  49.         # do something with "$dirname/$file"
  50.         #next if $file =~ m/^\.{1,2}$/;
  51.        
  52.         if (-d "$dirname/$file") {
  53.             if($replace ==1)
  54.             {
  55.                 print "\nAlbum: $dirname/$file \n";
  56.             }
  57.             process_files("$dirname/$file");
  58.         }
  59.        
  60.        
  61.         next unless $file =~ m/^(\d*)\s([^-])(.*)$/;
  62.        
  63.         if(defined($2) && defined($1) && defined($3))
  64.         {
  65.             if($2 ne "")
  66.             {
  67.                 if($replace ==1)
  68.                 {
  69.                     rename("$dirname/$file", "$dirname/$1 - $2$3");
  70.                 }
  71.                 #print "\n\t$file\n";
  72.                 if($replace ==0)
  73.                 {
  74.                     print $dirname;
  75.                 }
  76.                 print "\t$1 - $2$3\n";
  77.             }
  78.         }
  79.        
  80.     }
  81.    
  82.     closedir(DIR);
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement