Mover arquivos [RESOLVIDO]

1. Mover arquivos [RESOLVIDO]

Guilherme Moura de Souza
Sir.Guil

(usa CentOS)

Enviado em 31/07/2010 - 21:44h

Boa noite, se alguém tiver alguma ideia eu agradeço.
estou a procura de uma forma de mover alguns arquivos por faixa,
EX: mv *015623* ate 019236* /teste/01/
a faixa é realmente numérica, já tentei utilizar do "seq", se alguém souber agradeço.


  


2. MELHOR RESPOSTA

Túlio Hoffimann
tuliohmendes

(usa Arch Linux)

Enviado em 01/08/2010 - 11:06h

O que você queria fazer, fica melhor dessa maneira:



#!/bin/bash

for I in $(seq -w 015623 019236)
do
mv *$I* /teste/01/
done

3. Re: Mover arquivos [RESOLVIDO]

Túlio Hoffimann
tuliohmendes

(usa Arch Linux)

Enviado em 01/08/2010 - 09:45h

*015623* ate 019236*

Explique melhor essa faixa.


4. Re: Mover arquivos [RESOLVIDO]

Joao
stack_of

(usa Slackware)

Enviado em 01/08/2010 - 10:32h

Tenta com um script:

#!/bin/bash

for (( i=15623;i<19237;++i));
do
x=`ls -X | xargs -n 1 | grep $i`
if [ $? ];then
mv $x /teste/01/
fi
done



5. Re: Mover arquivos [RESOLVIDO]

Túlio Hoffimann
tuliohmendes

(usa Arch Linux)

Enviado em 01/08/2010 - 10:55h

stack_of,

O script que você fez não faz o que ele pediu, até porque ele quer a faixa de *015623* ate 019236* e não de *015623* ate *019236*. Veja que não tem um asterísco ali. ( e os zeros precedentes também são importantes )

E só como uma observação, se seu script for manipular arquivos com espaços, o resultado não vai ser o esperado, porque a linha x=`ls -X | xargs -n 1 | grep $i` vai separar os nome pelos espaços e se você tiver o nome "Meu arquivo", ele vai tratar como dois arquivos "Meu" e "arquivo".



6. Re: Mover arquivos [RESOLVIDO]

Joao
stack_of

(usa Slackware)

Enviado em 02/08/2010 - 16:09h

Quanto o operador logigo < é usado, o número 19237 será ignorado, limitando até o arquivo desejado.
Realmente, no caso de arquivos com espaço o meu script não funciona.


7. Re: Mover arquivos [RESOLVIDO]

Túlio Hoffimann
tuliohmendes

(usa Arch Linux)

Enviado em 02/08/2010 - 16:58h

stack_of,
Foi erro de digitação o 19237 que eu escrevi. Eu realmente queria escrever 19236...
Mas a questão que eu estou dizendo é que ele não explicou muito bem o que ele quer com essa faixa, porque *015623* ate 019236* é bem diferente de *015623* ate *019236*...


8. Re: Mover arquivos [RESOLVIDO]

Guilherme Moura de Souza
Sir.Guil

(usa CentOS)

Enviado em 17/08/2010 - 10:42h

agradeço a atenção de ambos, realmente eu especifiquei a faixa incorreta, o que eu queria dizer era *015623* ate *019236*,

puxando + uma "" o script do stack_of funcione bem dentro do proposto, só que leva muito tempo para mover cada arquivo, o script do Tulio.Hoffimann, também faz essa função e é mais rápido,

vou aproveitar para pedir mais uma dicam, como funciona o comando for, eu ainda não tinha trabalhado com ele.

tnks


9. Re: Mover arquivos [RESOLVIDO]

Túlio Hoffimann
tuliohmendes

(usa Arch Linux)

Enviado em 18/08/2010 - 10:32h

help for


10. Re: Mover arquivos [RESOLVIDO]

Guilherme Moura de Souza
Sir.Guil

(usa CentOS)

Enviado em 18/08/2010 - 18:07h

Obrigado pela atenção.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts