Estou padronizando o nome de vários arquivos de uma vez, então escrevi uma regex para perl-rename
:
perl-rename 'y/A-Z/a-z/; s/ã|á|â/a/g; s/é|ê/e/g; s/í/i/g; s/õ|ó/o/g; s/ú/u/g; s/ç/c/g; s/(?<=\d-)*\s/_/g; s/_+/_/g; s/(?<=\d)_/-/' *
Está funcionando exatamente como esperado:
2024-12-01 certidão de matrícula -> 2024-12-01-certidao_de_matricula
No entanto, pensei que poderia ser simplificado um pouco, então pensei nisso:
perl-rename 'y/A-Z/a-z/; y/ãáâéêíõóúç/aaaeeioouc/; s/(?<=\d-)*\s/_/g; s/_+/_/g; s/(?<=\d)_/-/' *
Os resultados, no entanto, não atenderam às minhas expectativas. Por exemplo:
2024-12-01 certidão de matrícula -> 2024-12-01-certidaao_de_matraccula
Por que o segundo comando não está funcionando, já que ele deveria estar fazendo uma transliteração direta de cada caractere acentuado? Não consigo nem entender o resultado. Obrigado antecipadamente.