Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5.  
  6. sub recursiveDelete {
  7. my $dir = shift;
  8. my $string = shift;
  9.  
  10. opendir(DIR, $dir) or die $!;
  11. my @folders
  12. = grep {
  13. -d "$dir/$_"
  14. && /^(?!\.)/
  15. } readdir(DIR);
  16.  
  17. foreach my $folder (@folders) {
  18. recursiveDelete($dir . "/" . $folder,$string); #comment this to remove recursion
  19. }
  20.  
  21. #closedir(DIR); #this was causing some strange error... reopening without closing works fine
  22.  
  23.  
  24. opendir(DIR, $dir) or die $!;
  25. my @files
  26. = grep {
  27. /^(.*)$string(.*)/i
  28. && -f "$dir/$_" # and is a file
  29. } readdir(DIR);
  30.  
  31. my @deletes;
  32. # Loop through the array printing out the filenames
  33. foreach (@files) {
  34. $_ =~ s/ ( [\(\)] ) /\\$1/xg;
  35. if (/^(.*)$string(.*)/i ) {
  36. opendir(DIR, $dir) or die $!;
  37. my @delete
  38. = grep {
  39. /^$1((?!($string)).*)$2/i
  40. && -f "$dir/$_" # and is a file
  41. } readdir(DIR);
  42. push(@deletes,@delete);
  43. }
  44. }
  45. foreach (@deletes) {
  46. #unlink $dir . "/" . $_;
  47. print $dir . "/" . $_ . "\n";
  48. }
  49.  
  50.  
  51. closedir(DIR);
  52. }
  53. recursiveDelete('.','USa');
  54. exit 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement