excluir imagens [RESOLVIDO]

1. excluir imagens [RESOLVIDO]

thiago
lacerdat25

(usa Red Hat)

Enviado em 01/04/2022 - 16:36h

tenho pasta com mais de 5 mil imagens que são ".png .PNG .jpg .JPG .jpeg .JPEG", onde o nome da imagem é a matricula do aluno.

ex:
987645.pgn
76456.JPG

O usuário que gerenciava isso não criou nenhum padrão, jogava as imagens para pasta de qualquer maneira. Achei algumas imagens que são o nome da imagem e o da pessoa e sobre nome

ex:
jackie.png
jachie chan.jpg
jachie chanII.JPEG

Preciso criar um script que varra toda a pasta e delete todas as imagens com nome:
jackie.png
jachie chan.jpg
jachie chanII.JPEG

criei um regex que busca a-z e deleta tudo que for .png .PNG .jpg .JPG .jpeg .JPEG.

Segue:
find /mnt/62-JOBS/01.GERAL/ -mindepth 2 -type f | cut -d"/" -f6 | grep -E '[[:alpha:]][^jpgJPGPNGpngJPEGjpegBMPbmppdf]'
Thumbs.db
Thumbs.db
Thumbs.db
william
880083 jackie.jpg
880145 corpk.jpg
88894 MATIAS.PNG
028937.jfif
89029287 jachie chan.jpg
JACKIE CHAN.jpg
JACK CHANII.PNG
Thumbs.db

criei um script que busca o nome do arquivo e depois eu busco a posição passando o indice que é o nome.

for i in $(find /mnt/62-JOBS/01.GERAL/ -mindepth 2 -type f | cut -d"/" -f6 | grep -E '[[:alpha:]][^jpgJPGPNGpngJPEGjpegBMPbmppdf]') #nome
do
path=$(find /mnt/62-JOBS/01.GERAL/ -mindepth 2 -type f | cut -d"/" -f1,2,3,4,5 | grep $i | head -1) #posição

sudo rm $path"/"$i #removendo o arquivo passando o caminho e o indice
done

meu problema e que os arquivos que tem espaço o laço quebra, e na hora de d
880083
jackie.jpg
880145
corpk.jpg
88894
MATIAS.PNG
89029287
jachie
chan.jpg
JACKIE
CHAN.jpg
JACK
CHANII.PNG


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/04/2022 - 18:18h


lacerdat25 escreveu:

tenho pasta com mais de 5 mil imagens que são ".png .PNG .jpg .JPG .jpeg .JPEG", onde o nome da imagem é a matricula do aluno.

ex:
987645.pgn
76456.JPG

O usuário que gerenciava isso não criou nenhum padrão, jogava as imagens para pasta de qualquer maneira.
Achei algumas imagens que são o nome da imagem e o da pessoa e sobre nome

ex:
jackie.png
jachie chan.jpg
jachie chanII.JPEG

Preciso criar um script que varra toda a pasta e delete todas as imagens com nome:
jackie.png
jachie chan.jpg
jachie chanII.JPEG

criei um regex que busca a-z e deleta tudo que for .png .PNG .jpg .JPG .jpeg .JPEG.

Segue:
find /mnt/62-JOBS/01.GERAL/ -mindepth 2 -type f | cut -d"/" -f6 | grep -E '[[:alpha:]][^jpgJPGPNGpngJPEGjpegBMPbmppdf]'
Thumbs.db
Thumbs.db
Thumbs.db
william
880083 jackie.jpg
880145 corpk.jpg
88894 MATIAS.PNG
028937.jfif
89029287 jachie chan.jpg
JACKIE CHAN.jpg
JACK CHANII.PNG
Thumbs.db

criei um script que busca o nome do arquivo e depois eu busco a posição passando o indice que é o nome.

for i in $(find /mnt/62-JOBS/01.GERAL/ -mindepth 2 -type f | cut -d"/" -f6 | grep -E '[[:alpha:]][^jpgJPGPNGpngJPEGjpegBMPbmppdf]') #nome
do
path=$(find /mnt/62-JOBS/01.GERAL/ -mindepth 2 -type f | cut -d"/" -f1,2,3,4,5 | grep $i | head -1) #posição

sudo rm $path"/"$i #removendo o arquivo passando o caminho e o indice
done

meu problema e que os arquivos que tem espaço o laço quebra, e na hora de d
880083
jackie.jpg
880145
corpk.jpg
88894
MATIAS.PNG
89029287
jachie
chan.jpg
JACKIE
CHAN.jpg
JACK
CHANII.PNG

--------------------------------------------------------------------------------------------------------------------
Boa tarde Lacerda, tá de 'rosca' isso..... rsrsrsrsrs
Vamos lá:
Execute o comando no diretório onde tem as imagens:

find . -maxdepth 1 -regextype posix-extended -regex '\.\/[[:alpha:] ]+\.(jpg|png|jpeg)' -exec ls -1 {} \; 

Confira o resultado, estando correto, execute:
find . -maxdepth 1 -regextype posix-extended -regex '\.\/[[:alpha:] ]+\.(jpg|png|jpeg)' -exec rm {} \; 

--------------------------------------------------------------------------------------------------------------------
Nota: Altere as EXTENSÕES para a sua necessidade.
Para casar Letras e Números:
find . -maxdepth 1 -regextype posix-extended -regex '\.\/[[:alnum:] ]+\.(jpg|png|jpeg)' -exec ls -l {} \; 

______________________________________________________________________


Importante:
Se te ajudei, me ajude, marque o tópico como Resolvido e escolha a MELHOR RESPOSTA!
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________


3. EXCLUIR IMAGENS

thiago
lacerdat25

(usa Red Hat)

Enviado em 06/04/2022 - 11:50h

Marcelo,

Deu certo sim, mas tem um problema que esqueci de explicar.

Eu preciso passar o caminho como parametro pois tem um pasta no meio do caminho e que e a data.


mnt/PASTA1/PASTA2/01.01.2021/
ou
mnt/PASTA1/PASTA2/2021.01.01/

Eu não sei como o usuário criou a pasta, então preciso fazer um comando que leia até aqui mnt/PASTA1/PASTA2/ e depois eu acho que um grep de certo ou eu tenha um modo de ocultar a pasta data.

valeuu






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts