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

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

Re: [shell-script] Distribuir arquivos pelo disco


From: Leslie Watter
Subject: Re: [shell-script] Distribuir arquivos pelo disco
Date: Tue, 17 Jul 2007 16:44:21 -0300

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 <address@hidden>:
>
>   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]



reply via email to

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