shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Res: [shell-script] Distribuir arquivos pelo disco


From: Flavio Sampaio
Subject: Res: [shell-script] Distribuir arquivos pelo disco
Date: Wed, 18 Jul 2007 04:57:12 -0700 (PDT)

Amigos Leslie e EdJunior, obrigado. Ajudaram-me muito. Legal ver que essa lista 
é mesmo solidária. Logo na minha primeira solicitação, em menos de 24 horas 
obtive solução do meu problema. Vocês todos são 10!

Té +


----- Mensagem original ----
De: Edjunior Machado <address@hidden>
Para: address@hidden
Enviadas: Terça-feira, 17 de Julho de 2007 17:12:35
Assunto: Re: [shell-script] Distribuir arquivos pelo disco

hey,

novamente, daria pra usar substituição de parâmetros em bash né?

exemplo:

emachado@emachado ~/temp $ ls
bla_Novo texto_novo.txt sti_Novo Documento de texto.txt
emachado@emachado ~/temp $ for i in *; do echo "prefixo ${i/_*/}";
echo "sufixo ${i#*_}"; done
prefixo bla
sufixo Novo texto_novo.txt
prefixo sti
sufixo Novo Documento de texto.txt

hasta!

jr.

On 7/17/07, Leslie Watter <watter@gmail. com> wrote:
> Olá,
>
> tente fazer como mostro abaixo :D
>
> Veja que eu substitui o teu segundo cut por
> cut -f 2- -d "_"
> note o menos ao lado do 2 (sem espaço)
> Assim vc pega todos os campos depois do primeiro _
> o hífen entre o nome do setor e o arquivo foi colocado no echo, então é só
> copiar e colar abaixo :)
>
> leslie:~/x/z$ ls
> 1213_a la ha 124_b la ha
> leslie:~/x/z$ for i in *; do setor=`echo $i | cut -f 1 -d "_"`;
> nomearq=`echo $i | cut -f 2- -d "_"`; echo $setor - $nomearq; done
> 1213 - a la ha
> 124 - b la ha
>
>
> Sds,
>
> LEslie
> 2007/7/17, frsamp <frsamp@yahoo. com.br>:
> >
> > Olá a todos os amigos da lista.
> >
> > Estou tentando fazer um script que pegue cada arquivo de uma
> > determinada pasta, e distribua-o por outras pastas do disco, de
> > acordo com uma regra pré-estabelecida com meus usuários: No início do
> > arquivo, incluir as 3 letras do código do setor e um "_". Assim,
> > aquele arquivo que tem como destino aquele setor, poderia ser
> > distribuído pelo próprio shell. Fiz + ou - assim (na verdade ele é
> > maior, mas isso não seria relevante diante do problema que vou
> > apresentar):
> >
> > #!/bin/bash
> > for nomeoriginal in $(ls -l /shares/comunicados ); do
> > setor=`echo $nomeoriginal | cut -f1 -d"_"`
> > nomearquivo= `echo $nomeoriginal | cut -f2 -d"_"`
> > mv /shares/comunicados /$nomeoriginal /shares/setores/ $setor/
> > $nomearquivo
> > done
> >
> > Assim, se um setor se chama "sti", basta para o usuário colocar na
> > pasta /shares/comunicados o arquivo "sti_XPTOZD" e o script move o
> > arquivo para /shares/setores/ sti/XPTOZD. Tudo muito bom, tudo muito
> > bem... Mas se o danado do arquivo tem espaço no nome, tudo pára de
> > funcionar! Para depurar o problema, fiz as seguintes alterações no
> > script acima:
> >
> > #!/bin/bash
> > for nomeoriginal in $(ls -l /shares/comunicados ); do
> > echo $nomeoriginal
> > # setor=`echo $nomeoriginal | cut -f1 -d"_"`
> > # nomearquivo= `echo $nomeoriginal | cut -f2 -d"_"`
> > # mv /shares/comunicados /$nomeoriginal /shares/setores/ $setor/
> > $nomearquivo
> > done
> >
> > E o resultado da execução do script fica assim:
> > sti_Novo
> > Documento
> > de
> > texto.txt
> >
> > Tendo como único arquivo na pasta /shares/comunicados o arquivo
> > sti_Novo Documento de texto.txt. Dessa forma, ele tenta processar
> > cada loop do for com sti_Novo, Documento,.. . Alguém pode me dar uma
> > luz, ou eu apanho, dizendo para meus usuários que eles não podem
> > colocar espaço nem "_" (separador de campo) no nome do arquivo.
> > SOCORRO!
> >
> >
> >
>
>
>
> --
> Leslie H. Watter
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------ --------- --------- --------- --------- --------- -
> 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: shell-script- unsubscribe@ yahoogrupos. com.br
> ------------ --------- --------- --------- --------- --------- -
> 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.programmi ng.shell. brazil
>
>
> Links do Yahoo! Grupos
>
>
>




      Flickr agora em português. Você cria, todo mundo vê.
http://www.flickr.com.br/

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]