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
______________________________________________________________________