Mover lista [RESOLVIDO]

13. Re: Mover lista [RESOLVIDO]

rbz
RBZ

(usa CentOS)

Enviado em 25/11/2015 - 13:41h

Deu certo em alguns arquivos e outros não, acho que por conta de caracteres:

/move.sh: line 91: erro de sintaxe próximo do `token' não esperado `('
./move.sh: line 91: `mv 20131114_111924(0).jpg /home/user/bb'



conectadohost escreveu:

Fiz da seguinte forma e funcionou no CentOs acredito que funcione no fedora

cat /home/user/aa/lista.txt | awk -F " " '{print "mv "$1" /home/user/bb"}' > /home/user/aa/lista1.txt

depois vc cria um script com qualquer nome, tipo movemeuarquivo.sh

pode ser assim cat /home/user/aa/lista1.txt > /bin/movemeuarquivo.sh


coloca isso antes de tudo no script movemeuarquivo.sh

#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

cd /home/user/aa

salva
da permissão chmod 777 /bin/movemeuarquivo.sh

e executa movemeuarquivo.sh

Explicando: o que fizemos foi inserir o MV antes dos arquivos que serão movidos, e acrescentamos o local para onde vão ser movidos.







  


14. Re: Mover lista

Wellington
wellington_r

(usa Debian)

Enviado em 25/11/2015 - 14:19h

Assumindo que cada linha do arquivo texto contenha todo o caminho de cada arquivo, como no exemplo:

$ cat /home/user/lista.txt
/home/user/origem/abc.jpg
/home/user/origem/def.jpg
/home/user/origem/fgi.jpg


Com a ajuda do xargs, você pode fazer:

$ cat /home/user/lista.txt | xargs mv -t /home/user/destino 


Mas se no arquivo texto apenas conter o nome dos arquivos, eu não sei como concatenar o caminho com a saída do cat, nesse caso, então colocaria algum "cd /home/user/origem" antes de executar o comando acima.

Ou você pode fazer:

$ while read file; do mv "/home/user/origem/$file" /home/user/destino/; done < lista.txt  



15. res:Mover lista

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 25/11/2015 - 14:44h

Olá,
sim exatamente os caracteres dos nomes de alguns arquivos pode causar esse erro
você pode renomear alguns arquivos e executar novamente o script

RBZ escreveu:

Deu certo em alguns arquivos e outros não, acho que por conta de caracteres:

/move.sh: line 91: erro de sintaxe próximo do `token' não esperado `('
./move.sh: line 91: `mv 20131114_111924(0).jpg /home/user/bb'



conectadohost escreveu:

Fiz da seguinte forma e funcionou no CentOs acredito que funcione no fedora

cat /home/user/aa/lista.txt | awk -F " " '{print "mv "$1" /home/user/bb"}' > /home/user/aa/lista1.txt

depois vc cria um script com qualquer nome, tipo movemeuarquivo.sh

pode ser assim cat /home/user/aa/lista1.txt > /bin/movemeuarquivo.sh


coloca isso antes de tudo no script movemeuarquivo.sh

#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

cd /home/user/aa

salva
da permissão chmod 777 /bin/movemeuarquivo.sh

e executa movemeuarquivo.sh

Explicando: o que fizemos foi inserir o MV antes dos arquivos que serão movidos, e acrescentamos o local para onde vão ser movidos.








---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---


16. Re: Mover lista [RESOLVIDO]

rbz
RBZ

(usa CentOS)

Enviado em 27/11/2015 - 13:59h

conectadohost foi exatamente o que fiz, renomeei os arquivos (pois eram poucos) e finalizou.

E se não fossem poucos !?
Poderia abrir e substituir caracteres de uma só vez, e executar novamente !


wellington_r, como eu já terminei, não vou conseguir testar o que você passou, mas pelo que disse sobre concatenar, foi exatamente o que o conectadohost fez, concatenando todo comando.

Valeu galera !


17. res:Mover lista

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 27/11/2015 - 14:07h

Olá,
caso fosse muitos arquivos para renomear acho que poderia ser feito com o comando o SED
Que bom que podemos ajuda-lo,
se for possível marque a resposta como a melhor resposta e não esqueça de marcar seu post como resolvido.

abraços e até a próxima.

RBZ escreveu:

conectadohost foi exatamente o que fiz, renomeei os arquivos (pois eram poucos) e finalizou.

E se não fossem poucos !?
Poderia abrir e substituir caracteres de uma só vez, e executar novamente !


wellington_r, como eu já terminei, não vou conseguir testar o que você passou, mas pelo que disse sobre concatenar, foi exatamente o que o conectadohost fez, concatenando todo comando.

Valeu galera !




---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts