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...).








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts