On Wed, 20 Sep 2006 11:13:12 -0300, gleissonmb <[EMAIL PROTECTED]> wrote: > Como veem sao dois scripts...funciona mas se fosse um só seria mas > limpo...tentei transformar o corretor.sh numa funcao dentro do script > principla mas nao deu...ideias? > > #################### recursive.sh ####################### > #!/bin/bash > # Script para corrigir nomes de arquivos e diretorios RECURSIVAMENTE. > # Gleisson Marin Bissa - 20-09-2006 11:03 h > > /usr/local/bin/corretor.sh > for i in `cat< <(ls)` ; do > [ -d "$i" ] || continue > dir=`pwd` > cd "$i" > echo trabalhando em "$i" > > /usr/local/bin/corretor.sh > $0 > > cd "$dir" > echo voltando para "$dir" > echo > echo > done Esse seu recursive.sh pode ser trocado pro um
find ./ -type d > ##################### corretor.sh ####################### > #!/bin/bash > # Script para corrigir nomes de arquivos e diretorios LOCAL > # Gleisson Marin Bissa - 20-09-2006 11:03 h > > c=1 Esse c nao deveria comecar com 0? afinal vc nao corrigiu nenhum arquivo ainda ;) > for x in * ; do > y=`echo "$x" | tr -s ' ' '-' | tr [:upper:] [:lower:] | sed > 'y/�&?ÁÀÃÂÄÉÈẼÊËÍÌĨÎÏÓÒÕÔÖÙÚŨÛüáàãâäéèẽêëíìĩîïóòõôöùúũûü/eeeaaaaaeeeeeiiiiiooooouuuuuaaaaaeeeeeiiiiiooooouuuuu/'` > if [ ! -e $y ]; then let c++ > mv "$x" "$y" ; echo Renomeando... "$x" para "$y" > fi > done Se voce tem arquivos com espaco no nome, esse for vai dar problemas. Voce deve setar seu IFS p/ '\n'; > echo > echo `ls | wc -l` 'Arquivos submetidos!!!' > echo -ne $(($c-1)) Arquivos corrigidos para minúsculo!!! > echo Jogue tudo do q esta dentro do seu for numa funcao. Algo como: function corrector() { x="$1" y=`echo "$x" ... ... } e basta chamar ela depois. Depois chame seu corrector com um find: IFS=$'\n' for file in $(find ./ -type -f -type d); do corrector "$file" done []s Humberto Pereira -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/ --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: [EMAIL PROTECTED] --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html