arruma_nomes.pl

Publicado por zé ricardo 21/02/2005

[ Hits: 5.685 ]

Download rightmp3names.pl




É um script bem simples que "arruma" os nomes de mp3.
Está bem comentado, assim cada um pode tirar o que não gostar.
Ele pega os arquivos .mp3 de um diretório e retirar os espaços, vírgulas, firulas e afins.. e deixa tudo em letra minúsculas. Quem gosta de modo texto sabe que é um saco ficar "escapando" os nomes das mp3 e etc.

  



Esconder código-fonte

#!/usr/bin/perl -w 

# Autor: Zé Ricardo ([email protected])
#
# Renomeia os arquivos mp3, de forma que os espacos e caracteres estranhos
# sejam removidos
# 
# Uso: ./rightmp3names.pl <dir>
# Se "dir" nao for passado, usa-se o diretorio atual
#
# Para instalar String::ShellQuote use Cpan
# cpan (enter)
# install String::ShellQuote

use strict;
use warnings;
use String::ShellQuote; # seguranca, "escapa" uma string para o bash
use Cwd; # para getcwd()

unless ($ARGV[0]) 
{
    $dir = getcwd;
}
else
{
    $dir = $ARGV[0]; # nao vem
}   

unless ($dir =~ /[\/]$/) { $dir .= "/"; }

opendir (DIR, $dir) or die $!;

my @arquivos = grep /\.mp3$/i, readdir DIR;

foreach my $mp3file (@arquivos)
{
    $new_name = $mp3file;
    $new_name =~ s/\s+/_/g; # tira os espacos
    $new_name =~ s/_-_/-/g; # tranforma "_-_" em apenas "-"
    $new_name =~ s/^[-_]+//; # elimina '-' e '_' do inicio
    $new_name =~ s/&/and/g; # transforma & em "and"
    $new_name =~ s/[\(\)\[\]]+/_/g; # () e [] viram _
    $new_name =~ s/,/_/g;
    $new_name =~ s/\'+/_/g; # elimina as aspas
    $new_name =~ s/\`+/_/g; # elimina as crases
    $new_name =~ s/_+/_/g;  # elimina "_" sequenciais
    $new_name =~ s/-+/-/g;  # elimina "-" sequenciais

    $new_name = lc $new_name; # todas as letras ficam minusculas

    # faz a modificacao se ouve alteracao
    if ($new_name ne $mp3file)
    {
   $dir = shell_quote ($dir);
   $mp3file = shell_quote ($mp3file);
   $new_name = shell_quote ($new_name);
   system "mv $dir$mp3file $dir$new_name";
   print "\n$mp3file virou $new_name";
    }    
}

closedir DIR;

Scripts recomendados

Usando ARGV como login

getter

Rsync e Perl: Sincronização de arquivos com gestão de backup incremental integrada

Remove comentarios de scripts

Compilar e mover


  

Comentários
[1] Comentário enviado por ksandim em 30/09/2005 - 17:11h

E ai Zé...
Blz...
Posta a versão Nova ai pra nois...
A com arrumação recursiva...


Contribuir com comentário