mandrivabrasil.org - Forum
23 de Maio de 2013, 12:09 *
Bem-vindo, Visitante. Por favor faça o Login ou Registro.

Login com nome de usuário, senha e duração da sessão
Notícias:
 
   Home   Ajuda Login Registrar  
Páginas: [1]   Ir para o Fundo
  Imprimir  
Autor Tópico: Script Para Renomear Arquivos  (Lida 4107 vezes)
leandro.marinho
Membro Jr.
**
Offline Offline

Mensagens: 64


Ver Perfil
« : 08 de Agosto de 2007, 09:46 »

Bom dia pessoal,
Estou tentando criar um script para organizar meus arquivos mp3. Ja consegui fazer um loop em todos os arquivos substituindo caracteres acentuados por caracteres comuns, além de converter todos os arquivos para minusculo. Algum sabe como faco para transformar apenas a primeira letra de cada palavra para maiusculo?

exemplo: alceu valenca - te amo brasilia.mp3      --->     Alceu Valenca - Te Amo Brasilia.mp3

tentei usar
Código:
ARQ=`echo $ARQ | sed 's,\ [a-z],\ [A-Z]',g`
ARQ=`echo $ARQ | sed 's,^[a-z],[A-Z]',g`

mas ele mostrou o seguinte resultado:
 alceu valenca - te amo brasilia.mp3      --->     [A-Z]lceu [A-Z]alenca - [A-Z]e [A-Z]mo [A-Z]rasilia.mp3
ou seja nao esta convertendo a segunda expressao.
« Última modificação: 08 de Agosto de 2007, 11:56 por leandro.marinho » Registrado
leandro.marinho
Membro Jr.
**
Offline Offline

Mensagens: 64


Ver Perfil
« Responder #1 : 09 de Agosto de 2007, 11:46 »

Depois de muito trabalho, consegui fazer meu primeiro script, que padroniza todos os arquivos e diretorios, recursivamente, dentro de um diretorio passado como parametro. Retira todos os caracteres acentuados e coloca a primeira letra de cada palavra em maiusculo. Estou usando ele para renomear meus mp3. Se for util para alguem, segue abaixo.

Código:
#!/bin/bash
# ##########################################
# Author: Leandro Marinho
# ##########################################
renomear(){
echo "---------------------------------"
echo "`pwd`"
echo ""
ls  | while read ARQ
do
NOVO=`echo ${ARQ//"ç"/"c"}`
NOVO=`echo ${NOVO//"ã"/"a"}`
NOVO=`echo ${NOVO//"é"/"e"}`
NOVO=`echo ${NOVO//"í"/"i"}`
NOVO=`echo ${NOVO//"ü"/"u"}`
NOVO=`echo ${NOVO//"ê"/"e"}`
NOVO=`echo ${NOVO//"ó"/"o"}`
NOVO=`echo ${NOVO//"Ã"/"A"}`
NOVO=`echo ${NOVO//"É"/"E"}`
NOVO=`echo ${NOVO//"â"/"a"}`
NOVO=`echo ${NOVO//"á"/"a"}`
NOVO=`echo ${NOVO//"õ"/"o"}`
NOVO=`echo ${NOVO//"ã"/"a"}`
NOVO=`echo ${NOVO//"À"/"a"}`
NOVO=`echo ${NOVO//"Ú"/"U"}`
NOVO=`echo ${NOVO//"Ã"/"I"}`
NOVO=`echo ${NOVO//"ú"/"u"}`
NOVO=`echo ${NOVO//"ô"/"o"}`
NOVO=`echo ${NOVO//"º"/".o"}`
NOVO=`echo ${NOVO//" & "/"&"}`
NOVO=`echo ${NOVO//"& "/"&"}`
NOVO=`echo ${NOVO//" &"/"&"}`
NOVO=`echo ${NOVO//"&"/" e "}`
NOVO=`echo $NOVO | tr [:upper:] [:lower:]`
NOVO=`echo $NOVO | tr [ãáàâä] "a"`
NOVO=`echo $NOVO | tr [éèëê] "e"`
NOVO=`echo $NOVO | tr [ìíîï] "i"`
NOVO=`echo $NOVO | tr [óòôõö] "o"`
NOVO=`echo $NOVO | tr [ùúûü] "u"`
NOVO=`echo $NOVO | tr "ç" "c"`
NOVO=`echo $NOVO | tr "ñ" "n"`
NOVO=`echo $NOVO | sed 's/\ a/\ A/g;s/\ b/\ B/g;s/\ c/\ C/g;s/\ d/\ D/g;s/\ e/\ E/g;s/\ f/\ F/g;s/\ g/\ G/g;s/\ h/\ H/g;s/\ i/\ I/g;s/\ j/\ J/g;s/\ k/\ K/g;s/\ l/\ L/g;s/\ m/\ M/g;s/\ n/\ N/g;s/\ o/\ O/g;s/\ p/\ P/g;s/\ q/\ Q/g;s/\ r/\ R/g;s/\ s/\ S/g;s/\ t/\ T/g;s/\ u/\ U/g;s/\ v/\ V/g;s/\ w/\ W/g;s/\ x/\ X/g;s/\ y/\ Y/g;s/\ z/\ Z/g;s/^a/A/g;s/^b/B/g;s/^c/C/g;s/^d/D/g;s/^e/E/g;s/^f/F/g;s/^g/G/g;s/^h/H/g;s/^i/I/g;s/^j/J/g;s/^k/K/g;s/^l/L/g;s/^m/M/g;s/^n/N/g;s/^o/O/g;s/^p/P/g;s/^q/Q/g;s/^r/R/g;s/^s/S/g;s/^t/T/g;s/^u/U/g;s/^v/V/g;s/^w/W/g;s/^x/X/g;s/^y/Y/g;s/^z/Z/g;'`

if [ "$NOVO" != "$ARQ" ]
then
echo "$NOVO        <---------        $ARQ"
mv "$ARQ" "$NOVO"
fi
done
ls -F |grep "/$" | while read DIR_ATUAL
do
  cd "`pwd`/$DIR_ATUAL"
  renomear
  cd ..
done
}


if [ "$#" != 1 ]
then
   echo ""
   echo "Use: $0 <dir>"
   echo "Exemplo: $0 /musicas"
   echo ""
   exit
fi

DIR="$1"
echo ""
echo "-------------------------------------------------"
echo "Renomeando arquivos do diretório $DIR ..."
echo "-------------------------------------------------"
cd "$DIR"

renomear

echo "-------------------------------------------------"
echo " Operacao Concluida."
echo "-------------------------------------------------"
Registrado
Páginas: [1]   Ir para o Topo
  Imprimir  
 
Ir para:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines XHTML 1.0 Válido! CSS Válido!