Problema em descompactar arquivos .zip

13. Re: Problema em descompactar arquivos .zip

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 27/03/2018 - 15:41h

msoliver escreveu:

Vou tentar explicar:
exec 3< <(ls) #Coloca a saída do comando "ls" no "descritor de arquivos  nº 3"
while read ARQ <&3; do #Pega o conteúdo do "descritor de arquivos nº 3", linha por linha.
echo \"${ARQ// /\\ }\" #Troca espaço por "\ ", "escapando os espaços"
unzip -n "${ARQ// /\\ }" ; 2>> $log #Desconpacta
rm "${ARQ// /\\ }" # Remove
done #Encerra o laço.
exec 3<&-#Fecha o Descritor de Arquivos Nº 3



É isso.
[/quote]

Acho q se não escapar os espaços e deixar toda variável entre aspas pode funcionar... Pelo q entendi, o bash não tá interpretando o barra invertida como deveria.

--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


  


14. Re: Problema em descompactar arquivos .zip

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/03/2018 - 15:42h

meianoite escreveu:

msoliver escreveu:


#!/bin/bash
log="/tmp/relatorio.txt"
exec 3< <(ls)
while read ARQ <&3; do
echo \"${ARQ// /\\ }\"
unzip -n "${ARQ// /\\ }\"; 2> $log
rm "${ARQ// /\\ }\" 2>> $log
done
exec 3<&-
exit 0


Correção:
#!/bin/bash
log="/tmp/relatorio.txt"
exec 3< <(ls -1 *.zip) #Aqui foi corrigido para pegar somente os ".zip"
while read ARQ <&3; do
echo \"${ARQ// /\\ }\"
unzip -n "${ARQ// /\\ }"; 2> $log
rm "${ARQ// /\\ }" 2>> $log
done
exec 3<&-
exit 0


15. Re: Problema em descompactar arquivos .zip

Perfil removido
removido

(usa Nenhuma)

Enviado em 27/03/2018 - 23:33h

msoliver escreveu:



Não funcionou.



#!/bin/bash

log="/tmp/relatorio.txt"


exec 3< <(ls -1 *.zip) # Pegar somente os ".zip"
while read ARQ <&3; do
echo \"${ARQ// /\\ }\"
unzip -n "${ARQ// /\\ }\"; 2> $log
rm "${ARQ// /\\ }\" 2>> $log
done
exec 3<&-

exit 0







$ ./script.sh
"Book\ Antiqua.zip"
"Century\ Schoolbook\ L\ Regular.zip"
"VTKS\ ROCK\ GARAGE\ BAND.zip"


$ cat /tmp/relatorio.txt
unzip: cannot find or open Book\ Antiqua.zip"; 2> /tmp/relatorio.txt
rm Book\, Book\ Antiqua.zip"; 2> /tmp/relatorio.txt
rm Book\.zip or Book\ Antiqua.zip"; 2> /tmp/relatorio.txt
rm Book\.ZIP.
unzip: cannot find or open Century\ Schoolbook\ L\ Regular.zip"; 2> /tmp/relatorio.txt
rm Century\, Century\ Schoolbook\ L\ Regular.zip"; 2> /tmp/relatorio.txt
rm Century\.zip or Century\ Schoolbook\ L\ Regular.zip"; 2> /tmp/relatorio.txt
rm Century\.ZIP.
unzip: cannot find or open VTKS\ ROCK\ GARAGE\ BAND.zip"; 2> /tmp/relatorio.txt
rm VTKS\, VTKS\ ROCK\ GARAGE\ BAND.zip"; 2> /tmp/relatorio.txt
rm VTKS\.zip or VTKS\ ROCK\ GARAGE\ BAND.zip"; 2> /tmp/relatorio.txt
rm VTKS\.ZIP.




$ bash -x script.sh
+ log=/tmp/relatorio.txt
+ exec
+ read ARQ
++ ls -1 'Book Antiqua.zip' 'Century Schoolbook L Regular.zip' 'VTKS ROCK GARAGE BAND.zip'
+ echo '"Book\' 'Antiqua.zip"'
"Book\ Antiqua.zip"
+ unzip -n 'Book\ Antiqua.zip"; 2> /tmp/relatorio.txt
rm Book\' 'Antiqua.zip"'
+ read ARQ
+ echo '"Century\' 'Schoolbook\' 'L\' 'Regular.zip"'
"Century\ Schoolbook\ L\ Regular.zip"
+ unzip -n 'Century\ Schoolbook\ L\ Regular.zip"; 2> /tmp/relatorio.txt
rm Century\' 'Schoolbook\' 'L\' 'Regular.zip"'
+ read ARQ
+ echo '"VTKS\' 'ROCK\' 'GARAGE\' 'BAND.zip"'
"VTKS\ ROCK\ GARAGE\ BAND.zip"
+ unzip -n 'VTKS\ ROCK\ GARAGE\ BAND.zip"; 2> /tmp/relatorio.txt
rm VTKS\' 'ROCK\' 'GARAGE\' 'BAND.zip"'
+ read ARQ
+ exec
+ exit 0




$ ls -1
Book Antiqua.zip
Century Schoolbook L Regular.zip
VTKS ROCK GARAGE BAND.zip
script.sh



16. Re: Problema em descompactar arquivos .zip

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 28/03/2018 - 11:51h

O erro tá nessa linha:


unzip -n "${ARQ// /\\ }\"; 2> $log


Ela tem q ficar assim:


unzip -n "${ARQ// /\\ }\" 2>> $log


Pelo erro no seu log deu pra ver isso.
--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


17. Re: Problema em descompactar arquivos .zip

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/03/2018 - 13:35h


Qual a diferença?

======================================================================

Método 1 (recursividade no código)


for i in $(ls *.zip);do

echo "$i"

unzip -n "$i" 2>> $log

rm "$i" 2>> $log

done





for i in $(ls *.ZIP);do

echo "$i"

unzip -n "$i" 2>> $log

rm "$i" 2>> $log

done


======================================================================

Método 2


for z in "*.zip"; do unzip "$z" ; done


======================================================================

Tem arquivos compactados: .zip e .ZIP .

Como melhorar isso para não criar recursividade no código?




18. Re: Problema em descompactar arquivos .zip

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/03/2018 - 13:47h

renato_pacheco escreveu:

O erro tá nessa linha:


unzip -n "${ARQ// /\\ }\"; 2> $log


Ela tem q ficar assim:


unzip -n "${ARQ// /\\ }\" 2>> $log


Pelo erro no seu log deu pra ver isso.
--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh



Com ou sem ; não funciona.





#!/bin/bash

log="/tmp/relatorio.txt"

exec 3< <(ls -1 *.zip) # Pegar somente os ".zip"
while read ARQ <&3; do
echo \"${ARQ// /\\ }\"
unzip -n "${ARQ// /\\ }\" 2> $log
rm "${ARQ// /\\ }\" 2>> $log
done
exec 3<&-

exit 0





$ bash -x script.sh
+ log=/tmp/relatorio.txt
+ exec
+ read ARQ
++ ls -1 'Book Antiqua.zip' 'Century Schoolbook L Regular.zip' 'VTKS ROCK GARAGE BAND.zip'
+ echo '"Book\' 'Antiqua.zip"'
"Book\ Antiqua.zip"
+ unzip -n 'Book\ Antiqua.zip" 2> /tmp/relatorio.txt
rm Book\' 'Antiqua.zip"'
+ read ARQ
+ echo '"Century\' 'Schoolbook\' 'L\' 'Regular.zip"'
"Century\ Schoolbook\ L\ Regular.zip"
+ unzip -n 'Century\ Schoolbook\ L\ Regular.zip" 2> /tmp/relatorio.txt
rm Century\' 'Schoolbook\' 'L\' 'Regular.zip"'
+ read ARQ
+ echo '"VTKS\' 'ROCK\' 'GARAGE\' 'BAND.zip"'
"VTKS\ ROCK\ GARAGE\ BAND.zip"
+ unzip -n 'VTKS\ ROCK\ GARAGE\ BAND.zip" 2> /tmp/relatorio.txt
rm VTKS\' 'ROCK\' 'GARAGE\' 'BAND.zip"'
+ read ARQ
+ exec
+ exit 0


$ ./script.sh
"Book\ Antiqua.zip"
"Century\ Schoolbook\ L\ Regular.zip"
"VTKS\ ROCK\ GARAGE\ BAND.zip"


$ ls -1
Book Antiqua.zip
Century Schoolbook L Regular.zip
VTKS ROCK GARAGE BAND.zip
script.sh




$ cat /tmp/relatorio.txt
unzip: cannot find or open Book\ Antiqua.zip" 2> /tmp/relatorio.txt
rm Book\, Book\ Antiqua.zip" 2> /tmp/relatorio.txt
rm Book\.zip or Book\ Antiqua.zip" 2> /tmp/relatorio.txt
rm Book\.ZIP.
unzip: cannot find or open Century\ Schoolbook\ L\ Regular.zip" 2> /tmp/relatorio.txt
rm Century\, Century\ Schoolbook\ L\ Regular.zip" 2> /tmp/relatorio.txt
rm Century\.zip or Century\ Schoolbook\ L\ Regular.zip" 2> /tmp/relatorio.txt
rm Century\.ZIP.
unzip: cannot find or open VTKS\ ROCK\ GARAGE\ BAND.zip" 2> /tmp/relatorio.txt
rm VTKS\, VTKS\ ROCK\ GARAGE\ BAND.zip" 2> /tmp/relatorio.txt
rm VTKS\.zip or VTKS\ ROCK\ GARAGE\ BAND.zip" 2> /tmp/relatorio.txt
rm VTKS\.ZIP.






19. Re: Problema em descompactar arquivos .zip

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 28/03/2018 - 14:07h

meianoite escreveu:

Tem arquivos compactados: .zip e .ZIP .

Como melhorar isso para não criar recursividade no código?



Assim:


for i in $(ls | grep -i zip$); do...


--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


20. Re: Problema em descompactar arquivos .zip

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/03/2018 - 14:08h

Acho que os sites onde baixei as fontes são esses:


VTKS Rock Garage Band


http://www.pickafont.com/fonts/VTKS-ROCK-GARAGE-BAND.html


Century Schoolbook L Regular


http://fontsgeek.com/fonts/Century-Schoolbook-L-Regular


Book Antiqua

http://ru.legionfonts.com/fonts/book-antiqua



21. Re: Problema em descompactar arquivos .zip

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 28/03/2018 - 14:10h

Pelo erro, tente não jogar mais nada dentro de log, só para termos certeza de q irá funcionar:


exec 3< <(ls -1 *.zip) # Pegar somente os ".zip"
while read ARQ <&3; do
echo \"${ARQ// /\\ }\"
unzip -n "${ARQ// /\\ }\"
rm "${ARQ// /\\ }\"
done
exec 3<&-


--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


22. Re: Problema em descompactar arquivos .zip

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/03/2018 - 14:14h

renato_pacheco escreveu:

meianoite escreveu:

Tem arquivos compactados: .zip e .ZIP .

Como melhorar isso para não criar recursividade no código?



Assim:


for i in $(ls | grep -i zip$); do...


--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


Tem que colocar o $ no final não pode só:

for i in $(ls | grep -i *.zip);do ....






23. Re: Problema em descompactar arquivos .zip

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 28/03/2018 - 14:33h

meianoite escreveu:

Tem que colocar o $ no final não pode só:

for i in $(ls | grep -i *.zip);do ....



Não entendi muito o q vc disse, mas o cifrão "no final" faz parte da regex do grep. Nada tem a ver com o cifrão de variável do bash.

--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


24. Re: Problema em descompactar arquivos .zip

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/03/2018 - 16:23h

meianoite escreveu:

renato_pacheco escreveu:

O erro tá nessa linha:


unzip -n "${ARQ// /\\ }\"; 2> $log


Ela tem q ficar assim:


unzip -n "${ARQ// /\\ }\" 2>> $log


Pelo erro no seu log deu pra ver isso.
--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh



Com ou sem ; não funciona.





#!/bin/bash

log="/tmp/relatorio.txt"

exec 3< <(ls -1 *.zip) # Pegar somente os ".zip"
while read ARQ <&3; do
echo \"${ARQ// /\\ }\"
unzip -n "${ARQ// /\\ }\" 2> $log
rm "${ARQ// /\\ }\" 2>> $log
done
exec 3<&-

exit 0





$ bash -x script.sh
+ log=/tmp/relatorio.txt
+ exec
+ read ARQ
++ ls -1 'Book Antiqua.zip' 'Century Schoolbook L Regular.zip' 'VTKS ROCK GARAGE BAND.zip'
+ echo '"Book\' 'Antiqua.zip"'
"Book\ Antiqua.zip"
+ unzip -n 'Book\ Antiqua.zip" 2> /tmp/relatorio.txt
rm Book\' 'Antiqua.zip"'
+ read ARQ
+ echo '"Century\' 'Schoolbook\' 'L\' 'Regular.zip"'
"Century\ Schoolbook\ L\ Regular.zip"
+ unzip -n 'Century\ Schoolbook\ L\ Regular.zip" 2> /tmp/relatorio.txt
rm Century\' 'Schoolbook\' 'L\' 'Regular.zip"'
+ read ARQ
+ echo '"VTKS\' 'ROCK\' 'GARAGE\' 'BAND.zip"'
"VTKS\ ROCK\ GARAGE\ BAND.zip"
+ unzip -n 'VTKS\ ROCK\ GARAGE\ BAND.zip" 2> /tmp/relatorio.txt
rm VTKS\' 'ROCK\' 'GARAGE\' 'BAND.zip"'
+ read ARQ
+ exec
+ exit 0


$ ./script.sh
"Book\ Antiqua.zip"
"Century\ Schoolbook\ L\ Regular.zip"
"VTKS\ ROCK\ GARAGE\ BAND.zip"


$ ls -1
Book Antiqua.zip
Century Schoolbook L Regular.zip
VTKS ROCK GARAGE BAND.zip
script.sh




$ cat /tmp/relatorio.txt
unzip: cannot find or open Book\ Antiqua.zip" 2> /tmp/relatorio.txt
rm Book\, Book\ Antiqua.zip" 2> /tmp/relatorio.txt
rm Book\.zip or Book\ Antiqua.zip" 2> /tmp/relatorio.txt
rm Book\.ZIP.
unzip: cannot find or open Century\ Schoolbook\ L\ Regular.zip" 2> /tmp/relatorio.txt
rm Century\, Century\ Schoolbook\ L\ Regular.zip" 2> /tmp/relatorio.txt
rm Century\.zip or Century\ Schoolbook\ L\ Regular.zip" 2> /tmp/relatorio.txt
rm Century\.ZIP.
unzip: cannot find or open VTKS\ ROCK\ GARAGE\ BAND.zip" 2> /tmp/relatorio.txt
rm VTKS\, VTKS\ ROCK\ GARAGE\ BAND.zip" 2> /tmp/relatorio.txt
rm VTKS\.zip or VTKS\ ROCK\ GARAGE\ BAND.zip" 2> /tmp/relatorio.txt
rm VTKS\.ZIP.


Boa tarde MeiaNoite.
Mania de copiar e colar... preguiça de digitar...
Ficou uma ASPAS escapada no comando "unzip" e no "rm"
Aproveitando, coloco a solução para "pegar" zip e ZIP.
Em tempo, não é necessário escapar os espaços... Conforme o Renato disse!
exec 3< <(ls -1 *.{zip,ZIP})
while read ARQ <&3; do
echo \"${ARQ}\"
unzip -n "${ARQ}"
rm "${ARQ}"
done
exec 3<&-

Marcelo Oliver




01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts