Bash (vagy bármi) Fileok törlése amennyiben két példányban létezik (különböző kiterjesztéssel)

Sziasztok,

adott egy könyvtárszerkezet, amiben fotókat tartok, de ezekből sok (de nem mindegyik) két példányban is létezik, .cr2 illetve .jpg kiterjesztéssel.

Mi a legegyszerűbb módja hogy minden .cr2 kiterjesztést letöröljek AMENNYIBEN létezik .jpg belőle?

Ubuntu 14.04, gondolom bash-ben megoldható :)

Köszi előre is!

Hozzászólások

Én a .cr2-tőt tartanám meg. Reggeli után írok megoldást is, de most nagyon éhes vagyok.

Ezért ez még bőven csiszolható, abból a feltételezésből indultam ki, hogy csak .jpg van és nincs .Jpg vagy hasonló.


#!/bin/bash

find . -name "*.jpg" | while read JPGFile
do
 CR2File="${JPGFile%jpg}cr2"
 if [ -f "${CR2File}" ]
 then
  echo rm "${CR2File}"
 fi
done

Hm, nálam kb. 1.5G hely szabadult fel... már megérte foglalkozni vele (igaz én fordítva töröltem :D)

Meg gondolkoztam, hogy lehetne rm -f, ami nem panaszkodik ha nincs ott a file, így kihagyható(*) az ellenőrzés, és akkor:

find . -iname '*.jpg' -exec bash -c 'rm -f "${1%:0:-3}cr2"' a {} \;

De ezt még macerásabb olvasni, pláne javítani. Különösen ha kiötlök még valami case-fix voodoo-t, pl.:

find . -iname '*.jpg' -exec bash -c 'rm -f "${1%:0:-3}[cC][rR]2"' a {} \;

*) Egyébként is kihagyható persze, kit érdekel a hiszti :D

keresd a *.cr2 file-okat majd vagd le a vegerol a cr2 kiterjesztest es tedd hozza a jpg majd az igy keletkezett filokat torolheted.
Erdmeny: ha volt ilyan torolte, ha nincs ilyen akkor jelezi, hogy nem tudja torolni.

köszi mindenkinek az agyvihart :) innen már megoldom szerintem :)