sexta-feira, 20 de maio de 2011

Shell script para retirar os acentos dos nomes dos arquivos

Hoje tive a necessidade de um script para retirar os acentos no nome de todos os arquivos de um diretório.

Dando uma vasculhada na internet, encontrei alguns exemplos usando o sed e awk, mas não me atenderam.

Compartilho com vocês, o script que fiz, com a dica do amigo Robert Almeida, para usar o iconv:


#!/bin/bash


for file in *;
do
newname=`echo "$file" | iconv -t 'ascii//TRANSLIT'`


mv "$file" "$newname"


done


O script acima, retira os acentos dos caracteres, então Á fica A, é fica e, e assim por diante.


Minha distribuição é Fedora, na versão 11 (Leonidas), Kernel 2.6.30.

9 comentários:

  1. Para constar, no Ubuntu 11.04 também funcionou corretamente. (;

    Valeu pela força e boa dica.

    []s

    ResponderExcluir
  2. Obrigado!
    Funciona, no Ubunto 10.4, Linux version 2.6.32-41-386.

    ResponderExcluir
  3. Bom no RedHat não funcionou porem adaptei e deu certo!

    iconv -f iso-8859-1 -t ascii//TRANSLIT ENTRADA > SAIDA
    mv SAIDA ENTRADA

    ResponderExcluir
  4. Lindo isso... me poupou de renomear 1236 arquivos

    ResponderExcluir
  5. Thank you for sharing such a useful script to remove the name. It is very useful information for me.

    ResponderExcluir
  6. Valeu kra! há muito tempo eu procuro esse script, já tentei diversas formas, mas sem um resultado confiável. valeu mesmo!

    ResponderExcluir
  7. Aqui funcionou perfeitamente no Linux Mint 19.1

    Valeu pela dica!

    ResponderExcluir