Pular para o conteúdo

Shell Script HELP!

Responder tópico
  • Denunciar
  • Indicar
01 02

1. Shell Script HELP!

Enviado em 20/01/2012 - 12:30h

Pessoal boa tarde,
deixa eu explicar minha duvida, eu tenho um diretório com varios arquivos, sendo eles de varias extensões ex: .ABC .DEF .GHI, e dentro desse diretório tem pastas ABC, DEF , GHI.
Queria um script que listasse os arquivos e jogava dentro de suas devidas pastas. E o que não for "mensagem de erro".
Entenderam?
o que puderem me ajudar eu agradeço.

Obrigado.

Responder tópico

2. Re: Shell Script HELP!

Enviado em 20/01/2012 - 12:41h

de uma lida
espero que ajude

http://aurelio.net/

é muito bom eu recomento
eu começei por lá

lê e vai construindo o script
qualquer duvida estamos ai

3. Re: Shell Script HELP!

Enviado em 20/01/2012 - 13:23h

Tente pelo menos iniciar o script e poste aqui o que vc já fez, assim vamos trabalhando sua idéia e te ajudando no que for preciso! :-)

5. ajuda..

Enviado em 20/01/2012 - 14:04h

Olha, comecei assim mais não sei como continuar...

#!/bin/bash

cd "/home/lucas/Alex"
for i in *.*
do
cat $i
if [$i -eq *.abc]
mv /home/lucas/Alex /home/lucas/Alex/ABC


tem 3 diferentes tipos de arquivos jogados em uma pasta que contem 3 pastas dentro dela com os nomes das extensões.
e o que não for igual o nome das pastas, exibo a mensagem de erro!

6. Re: Shell Script HELP!

Enviado em 21/01/2012 - 01:12h


#!/bin/bash

cd "/home/lucas/Alex"

# substitua abc def ghi por uma lista de formatos que queira buscar/organizar
for param in abc def ghi
do
# para cada arquivo encontrado, de acordo com o parâmetro fornecido, o comando abaixo vai buscá-lo e caso encontre irá movê-lo para seu diretório correspondente com o mesmo nome
find /home/lucas/Alex -type f -iname "*.$param" -exec mv {} "$param"/ \;
done




Montei o código acima, dê uma olhada, teste, e qualquer dúvida poste que ajudaremos....

7. Re: Shell Script HELP!

Enviado em 23/01/2012 - 12:11h

eu não consegui entender,
talvez posso até fazer uma substring também né ?


8. Re: Shell Script HELP!

Enviado em 23/01/2012 - 12:36h

Analise com calma veja que o find vai fazer uma busca a partir do diretório especificado e executará um comando, que fica entre

-exec ..... \;


o {} faz referência ao nome do arquivo encontrado pelo find.



9. olha

Enviado em 23/01/2012 - 12:40h

Olha como está, mais ainda nao consegui entender como vou fazer com que leia todos os arquivos de uma vez, e oq for igual o nome da pasta, ja mover para a pasta.
entendeu?
Olha como está !

#!/bin/bash

for i in "/home/lucas/Alex/*.*"
do

Arquivo=$i

Formato=

if [[ $Arquivo -eq $Formato ]]
then
echo "Moveu o arquivo $Arquivo para a pasta $Formato"
else
echo "Nao existe pasta"
fi

done

Minha duvida é no formato, como posso fazer?
;/

10. Re: Shell Script HELP!

Enviado em 23/01/2012 - 18:38h

#!/bin/bash

# por partes para ficar legivel então:

# lista todas as extensoes
extensoes=$(ls *.* |awk -F . '{print $NF}' | sort -u)

for ext in $extensoes ; do

# para cada extensao encontrada, testar se o diretorio com o mesmo nome existe, e se sim, mover os arquivos para diretorio.

if [ -d $ext ] ; then
echo "mv *.$ext $ext"
else
echo "diretorio $ext nao encontrado"
fi
done


espero que ajude, abraço!

blog.mrx.com.br
andre@mrx.com.br

11. Re: Shell Script HELP!

Enviado em 23/01/2012 - 22:37h


Olha como está, mais ainda nao consegui entender como vou fazer com que leia todos os arquivos de uma vez, e oq for igual o nome da pasta, ja mover para a pasta.
entendeu?

Eu não entendi tb o que você quer, pois o código que passei resolve seu problema:


#!/bin/bash

cd "/home/lucas/Alex"

# substitua abc def ghi por uma lista de formatos que queira buscar/organizar
for param in abc def ghi
do
# para cada arquivo encontrado, de acordo com o parâmetro fornecido, o comando abaixo vai buscá-lo e caso encontre irá movê-lo para seu diretório correspondente com o mesmo nome
find /home/lucas/Alex -type f -iname "*.$param" -exec mv {} "$param"/ \;
done



Agora se você quiser que o script que vc passou funcione, o do colega acima vai ajudar, só que ele só consegue buscar os arquivos dentro do diretório corrente e o find busca em todos a partir do diretório especificado.


como vou fazer com que leia todos os arquivos de uma vez..
Isso não tem como, pelo menos desconheço, o uso de vários comandos como o ls, ajudaria, mas o find já faz o trabalho complicado e bem mais rápido...

12. Re: Shell Script HELP!

Enviado em 23/01/2012 - 23:49h

LucasSantiago escreveu:
Pessoal boa tarde,
deixa eu explicar minha duvida, eu tenho um diretório com varios arquivos, sendo eles de varias extensões ex: .ABC .DEF .GHI, e dentro desse diretório tem pastas ABC, DEF , GHI.
Queria um script que listasse os arquivos e jogava dentro de suas devidas pastas. E o que não for "mensagem de erro".
Entenderam?
o que puderem me ajudar eu agradeço.
Obrigado.
Então, o exemplo que eu escrevi, foi baseado nas premissas, do problema:
1) 1 diretorio, com varios arquivos (nada sobre subdiretorios)
2) varias extensoes, e o usuario não sabe todas

abraço!

blog.mrx.com.br
gtalk,msn,mail: andre@mrx.com.br
01 02

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder