Fórum Ubuntu Linux - PT
Suporte Técnico => Programação e Scripts => Tópico iniciado por: andresgodoy em 11 de Setembro de 2014, 09:10
-
Olá
Estou rodando um script que converte uma imagem e um formato diferente. Como tenho 4000 imagens, gostaria de fazer isso em um unico comando
o script roda assim:
;executavel -i entrada -o saida -p modelo
as imagens tem o mesmo nome, mas estão numeradas diferente no final (exempo: imagem_00001.img .... imagem_04000.img)
tentei o comando:
;for n in *.img; do executavel –i $n –o convert/$n –p “template_file” ; done
porem nao rolou....
alguem sabe o erro?
grato
-
Olá
Encontrei na rede este script que converte arquivos de áudio wma em mp3 usando o mplayer.
Quem sabe você pode adaptar para seu programa de conversão de imagens
http://voidmain.is-a-geek.net/files/scripts/wma2mp3
-
O programa funciona bem
queria apenas rodar ele multiplas vezes (utilizando a variavel N)
-
Sei pouco de bash, mas o seu loop parece estar correto. Se o programa funciona bem com um único arquivo então deveria funcionar também nesse loop. O que que "não rolou"? Qual o erro?
Uma boa dica para testar o loop é colocar "echo" na frente do "comando". Assim ao invés de executar o comando você vai ver exatamente o que o loop tenta rodar. Se cada linha impressa está com a chamada correta para o seu comando então não tem porque não dar certo.
-
tentei o comando:
;for n in *.img; do executavel –i $n –o convert/$n –p “template_file” ; done
Existe a subpasta convert no diretório que vc tá rodando o comando?
-
existe sim....
ele roda o loop N vezes (sendo N o numero de imagens), mas nao da um output...
funciona perfeitamente sem o loop
-
Eu prefiro quando mostram exatamente o que estão fazendo, porque muitas vezes o problema é sutil... Nesse caso hipotético tudo deve funcionar corretamente, o único errinho que vejo é que o $n dentro do bloco não está entre aspas, mas com essa entrada não vai ser problema porque os nomes não possuem espaços (ou qualquer palavra reservada).
-
Por que não colocar o comando de converter dentro do laço?
Eu faço assim:
for file in *.jpg; do convert -resize 1600 "$file" 1600/"$file"; done;
para converter as imagens para 1600 de resolução.