strip_filename.pl 909 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/usr/bin/env perl
  2. # Stupid script to strip trash formatted filenames
  3. use strict;
  4. use warnings;
  5. my @inputs = @ARGV;
  6. sub strip_filename($) {
  7. my $filename = shift;
  8. my @chars = split("",$filename);
  9. my $new_filename;
  10. open(my $fh, ">>", \$new_filename) or die "Couldn't open new_filename var\n";
  11. foreach my $char ( @chars ) {
  12. if ( $char =~ m/\s/ ) {
  13. next;
  14. } elsif ( $char =~ m/\(|\)|\\|\'|\$|\!|,|\[|\]/ ) {
  15. next;
  16. } else {
  17. print $fh $char;
  18. }
  19. }
  20. close $fh;
  21. return $new_filename;
  22. }
  23. sub rename_file($$) {
  24. my ( $old_filename, $new_filename ) = @_;
  25. my $cmd = "mv '$old_filename' $new_filename";
  26. print "$cmd\n";
  27. system("$cmd");
  28. }
  29. foreach my $input ( @inputs ) {
  30. if ( ! -f $input ) {
  31. print "File at path $input doesn't look like a file\n";
  32. exit 1;
  33. }
  34. print "$input\n";
  35. my $new_filename = strip_filename($input);
  36. print "$new_filename\n";
  37. rename_file($input,$new_filename);
  38. }