Portál AbcLinuxu, 16. července 2025 20:19
Potřebuji přejmenovat cca 50k fotek na názvy s jen velkými písmeny jenomže mám spousty fotek duplicitně se stejným názvem ale například příponou Jpg JPG jpg .
Netuším jak zabezpečit kontrolu například MD5 , srovnat název a vymazat duplikáty a potom vše přejmenovat například na velká písmena.
Samozřejmě že si to předem zazálohuju ale jak to vlastně udělat mne nenapadá.
Řešení dotazu:
find . -exec md5sum "{}" \; | sort > /tmp/souctyPotom můžeš vzít všechny duplicitní md5-ky, vyhledat soubory, kterým patří a vždy zahodit první řádek u stejných md5 součtů:
cat /tmp/soucty | awk '{print $1}' | uniq -d | while read i; do grep $i /tmp/soucty | tail -n +2; done | sed -e 's/^[^ ]* //'Tím dostaneš všechny soubory, které jsou na smazání... A přidáním za předchozí příkaz tohoto:
| while read j; do rm "$j"; donetyto duplicitní soubory smažeš. No a to přejmenování... Pokud chceš přejmenovat pouze soubory, tak bych to viděl takhle:
find . | while read j; do bn=`basename $j`; dn=`dirname $j`; mv $j $dn/`echo $bn | awk '{print toupper($0);}'`; done
Děkuji , vyzkouším ...
Tak nějak nefunguje hledání duplicitních MD5
obsah toho SOUCTY je asi takto :
aa52583ed1e3896d0d97e7829ee323ad ./Jani/FFF/kotatko/2-cs-a3be901e855b7c4b7ac21d932d4bf1de.jpg
aa52583ed1e3896d0d97e7829ee323ad ./Jani/FFF/8/2-cs-a3be901e855b7c4b7ac21d932d4bf1de.jpg
aa557ae0dc8f02e58214a6dd70148534 ./fotoobrazky vsichni/AnO/p168.jpg
aa557ae0dc8f02e58214a6dd70148534 ./fotoobrazky vsichni/FFF Pepi/s Pepcou/f33.jpg
aa557ae0dc8f02e58214a6dd70148534 ./fotoobrazky vsichni/FFF Pepi/s Pepcou/5-cs-31f7a7299f84e682046f280dbaaec43c.jpg
aa557ae0dc8f02e58214a6dd70148534 ./fotoobrazky vsichni/fotoobr/f33.jpg
aa557ae0dc8f02e58214a6dd70148534 ./sporic/5-cs-31f7a7299f84e682046f280dbaaec43c.jpg
kdyz pouzijucat /tmp/soucty | awk '{print $1}' | uniq -d | while read i; do grep $i /tmp/soucty | tail -n +2; done | sed -e 's/^[^ ]* //'
tak to vypise spousty tisic souboru co nejsou duplicitni.
Kde je chyba ve vyhledavani duplicit ?
./Jani/FFF/8/2-cs-a3be901e855b7c4b7ac21d932d4bf1de.jpg ./fotoobrazky vsichni/FFF Pepi/s Pepcou/f33.jpg ./fotoobrazky vsichni/FFF Pepi/s Pepcou/5-cs-31f7a7299f84e682046f280dbaaec43c.jpg ./fotoobrazky vsichni/fotoobr/f33.jpg ./sporic/5-cs-31f7a7299f84e682046f280dbaaec43c.jpgTyto soubory jsou na smazání, protože jsou to duplicity. (v seznamu chybí ./Jani/FFF/kotatko/2-cs-a3be901e855b7c4b7ac21d932d4bf1de.jpg a ./fotoobrazky vsichni/AnO/p168.jpg)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.