Pildikataloogide võrdlus ilma laiendita

Oli vaja võrrelda kahte pildikataloogi, millest ühes olid JPG faili, teises CR2 failid. Vaja oli kustutada need CR2 failid, millel ei olnud vasted JPG failide kataloogis. Failide nimed olid muidu identsed, aga faililaiendid loomulikult erinevad. Võrrelda tuligi niisiis failidel ainult nimeosa, ignoreerides laiendit.

Kataloogide võrdlemiseks ja vajalike failide kustutamiseks sai järgmine skript:

#/bin/bash
#Defineerime muutujatena vajalikud kataloogid
a=Raw-pildid/2022/20220706
b=Pildid/2022/20220706
#Siit edasi pole vaja muuta
for file in `ls $a/` ; do
ls $b/${file:0:8}*.JPG >/dev/null 2>/dev/null
if [ $? -ne 0 ] ; then
echo "fail $a/$file on, $b/${file:0:8}.JPG puudub"
#Kui tahad otsida, mitte kustutada, pane järgnevale kahele reale # ette
rm $a/$file
echo "$a/$file kustutatud"
fi
done

Selle koodi kohta ka selgitus:
1. Defineeritakse muutujad:
muutuja a on toorpiltide kataloog, kus on rohkem faile
muutuja b on jpg piltide kataloog, kus on vähem faile.
Muutujate defineerimise read ei tohi sisaldada tühikuid!

2. Võrreldakse katalooge ju kuvatakse ekraanile failid, mis jpg piltide kataloogis puuduvad.

3. Puuduvad failid kustutatakse ja antakse ka ekraanile tagasisidet, et need kustutati.

Lisa kommentaar

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga