Download de arquivos

1. Download de arquivos

Carlos Roberto de Oliveira Junior
karlinhos987

(usa Debian)

Enviado em 12/10/2016 - 21:49h

Olá. Tenho um arquivo que possue 30k linhas como essas
https://db-image-upload.s3.amazonaws.com/produtos/59584/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/2.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/3.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/4.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/5.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59578/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59578/550/2.jpg
https://db-image-upload.s3.amazonaws.com/produtos/160/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/154/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/100/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/97/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/97/550/2.jpg
https://db-image-upload.s3.amazonaws.com/produtos/95/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/90/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/84/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/71/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/70/550/1.jpg

Preciso de salvar essas imagens em diretorios com nomes especificos, como por exemplo: https://db-image-upload.s3.amazonaws.com/produtos/59579/550/1.jpg, essa imagem deverá ser salva no diretorio 59579.
Minha duvida é como eu pego essa parte da string para criar o diretorio com esse nome.


  


2. Re: Download de arquivos

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 12/10/2016 - 21:53h

como existe um caracter separador com "variação fixa", neste caso "/", vc pode usar o comando cut.

Exemplo

# pega o diretorio
DIRETORIO=$(echo "https://db-image-upload.s3.amazonaws.com/produtos/97/550/1.jpg" | cut -d'/' -f6)
# cria, caso não exista
[ ! -d "$DIRETORIO" ] && mkdir $DIRETORIO



3. Re: Download de arquivos

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/10/2016 - 22:24h

karlinhos987 escreveu:

Olá. Tenho um arquivo que possue 30k linhas como essas
https://db-image-upload.s3.amazonaws.com/produtos/59584/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/2.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/3.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/4.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/5.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59578/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59578/550/2.jpg
https://db-image-upload.s3.amazonaws.com/produtos/160/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/154/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/100/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/97/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/97/550/2.jpg
https://db-image-upload.s3.amazonaws.com/produtos/95/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/90/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/84/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/71/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/70/550/1.jpg

Preciso de salvar essas imagens em diretorios com nomes especificos, como por exemplo: https://db-image-upload.s3.amazonaws.com/produtos/59579/550/1.jpg, essa imagem deverá ser salva no diretorio 59579.
Minha duvida é como eu pego essa parte da string para criar o diretorio com esse nome.


Boa noite karlinhos987.
OBS.: LINKS.txt, é o arquivo contendo os links acima . . .
while read line;do
DIR=$(awk -F"/" '{print $5}' <<< $line)
done<LINKS.txt

att.:
marcelo oliver


4. Re: Download de arquivos

Carlos Roberto de Oliveira Junior
karlinhos987

(usa Debian)

Enviado em 13/10/2016 - 09:09h

rai3mb escreveu:

como existe um caracter separador com "variação fixa", neste caso "/", vc pode usar o comando cut.

Exemplo

# pega o diretorio
DIRETORIO=$(echo "https://db-image-upload.s3.amazonaws.com/produtos/97/550/1.jpg" | cut -d'/' -f6)
# cria, caso não exista
[ ! -d "$DIRETORIO" ] && mkdir $DIRETORIO


Bom dia, blz?
Eu consegui assim, mais teria outro jeito de fazer

echo "Iniciando Download..."
for i in $(cat imagens3.txt); do
atual=$(pwd)
pasta=$(echo $i | cut -d"/" -f5)
arquivo=$(echo $i | cut -d"/" -f7 | cut -d" " -f1)
mkdir $pasta
echo "Criando pasta: $pasta"
echo "Baixando imagem: $arquivo"
curl $i -o "$atual/$pasta/$arquivo";
echo "ok"
done



5. Re: Download de arquivos

Carlos Roberto de Oliveira Junior
karlinhos987

(usa Debian)

Enviado em 13/10/2016 - 09:09h

msoliver escreveu:

karlinhos987 escreveu:

Olá. Tenho um arquivo que possue 30k linhas como essas
https://db-image-upload.s3.amazonaws.com/produtos/59584/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/2.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/3.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/4.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59579/550/5.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59578/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/59578/550/2.jpg
https://db-image-upload.s3.amazonaws.com/produtos/160/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/154/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/100/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/97/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/97/550/2.jpg
https://db-image-upload.s3.amazonaws.com/produtos/95/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/90/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/84/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/71/550/1.jpg
https://db-image-upload.s3.amazonaws.com/produtos/70/550/1.jpg

Preciso de salvar essas imagens em diretorios com nomes especificos, como por exemplo: https://db-image-upload.s3.amazonaws.com/produtos/59579/550/1.jpg, essa imagem deverá ser salva no diretorio 59579.
Minha duvida é como eu pego essa parte da string para criar o diretorio com esse nome.


Boa noite karlinhos987.
OBS.: LINKS.txt, é o arquivo contendo os links acima . . .
while read line;do
DIR=$(awk -F"/" '{print $5}' <<< $line)
done<LINKS.txt

att.:
marcelo oliver



Bom dia, blz?
Eu consegui assim, mais teria outro jeito de fazer

echo "Iniciando Download..."
for i in $(cat imagens3.txt); do
atual=$(pwd)
pasta=$(echo $i | cut -d"/" -f5)
arquivo=$(echo $i | cut -d"/" -f7 | cut -d" " -f1)
mkdir $pasta
echo "Criando pasta: $pasta"
echo "Baixando imagem: $arquivo"
curl $i -o "$atual/$pasta/$arquivo";
echo "ok"
done





6. Re: Download de arquivos

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 13/10/2016 - 09:19h

karlinhos987 escreveu:
Bom dia, blz?
Eu consegui assim, mais teria outro jeito de fazer

echo "Iniciando Download..."
for i in $(cat imagens3.txt); do
atual=$(pwd)
pasta=$(echo $i | cut -d"/" -f5)
arquivo=$(echo $i | cut -d"/" -f7 | cut -d" " -f1)
mkdir $pasta
echo "Criando pasta: $pasta"
echo "Baixando imagem: $arquivo"
curl $i -o "$atual/$pasta/$arquivo";
echo "ok"
done




Se funcionou, siga em frente, vá aperfeiçoando conforme necessidade e aprendizado, afinal de contas, em programação sempre vai existir outro jeito de fazer a mesma coisa (poderia fazer em outra linguagem, fazer log em arquivo, enviar email, usar awk, sed, etc, etc...).