2009/4/7 <j.romi...@gmail.com>: > Olá. > > Gostaria de "normalizar" nomes de arquivos, de forma que: > > 1) espaços são convertidos para sublinhados (_) > 2) letras maiúsculas são convetidas para letras minúsculas > 3) caracteres com acento são convertidos para caracteres sem acentos > > Tentei fazer um script para esta tarefa usando tr, mas descobri que o tr > não funciona com UTF-8. > > > $ cat /var/tmp/normaliza.sh > #! /bin/sh -x > > original="$1" > > echo "${original}" |\ > tr '[:upper:]' '[:lower:]' |\ > tr ' áéíóúâêîôûãẽĩõũàèìòùç' '_aeiouaeiouaeiouaeiouc' > > $ sh /var/tmp/normaliza.sh /alt/movies/gcstar/covers/Amor\ E\ Inocência.jpg > /alt/movies/gcstar/covers/amor_e_inocconcia.jpg > > > Alguma sugestão de como implementar esta funcionalidade? > > Romildo
Solução tosca (iconv de ida e volta) iconv -f utf-8 -t iso8859-1 <<< "/alt/movies/gcstar/covers/Amor E Inocência.jpg" | tr '[:upper:]' '[:lower:]' | tr ' áéíóúâêîôûãẽĩõũàèìòùç' '_aeiouaeiouaeiouaeiouc' | iconv -f iso8859-1 -t utf-8 É tosca, mas funciona :P -- Fabiano Caixeta Duarte Especialista em Redes de Computadores Linux User #195299 Ribeirão Preto - SP