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/&#65533;&?ÁÀÃÂÄÉÈ&#7868;ÊËÍÌ&#296;ÎÏÓÒÕÔÖÙÚ&#360;Ûüáàãâäéè&#7869;êëíì&#297;îïóòõôöùú&#361;ûü/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

 



Responder a