Как удалить файлы JPG, но только если существует соответствующий файл RAW? - Фотопедия
18 голосов
/ 15 октября 2011

Все мои ранние фотографии (Canon G2) сделаны в формате JPG, но когда я получил свой Nikon D90, я изначально снимал в формате JPG, затем переключился на RAW + JPG, и теперь я хотел бы перейти только на RAW.

У меня буквально тысячи фотографий на моем жестком диске. Фотографии находятся в подкаталогах (по дате) в одном каталоге с именем Import.

Я собираюсь импортировать все эти фотографии в Lightroom 3.0, однако я хотел бы удалить все файлы JPG, , но только там, где уже есть соответствующий файл RAW (т.е. я больше не хочу сохранить версии JPG и RAW одного и того же файла).

Если бы я мог легко сделать это в Lightroom (после импорта всего, включая дубликаты файлов JPG), это было бы здорово. Также было бы хорошо, если бы существовал простой способ сделать это перед импортом файлов (но, надеюсь, это не потребовало бы посещения каждого каталога в поисках имен файлов с расширениями JPG и NEF).

Кто-нибудь знает, как это сделать (в Lightroom или с помощью какого-либо инструмента / скрипта в Windows)?

Ответы [ 11 ]

0 голосов
/ 18 января 2016

Работая на Mac OS X , мне не хватало проверки работоспособности для «того же контента» в предыдущих ответах. У меня были повторяющиеся имена для разных картинок, потому что я забыл включить счетчик изображений в моей камере. Вот моя версия, которая проверяет информацию EXIF ​​на то же время захвата:

Вам нужно запустить

sudo port install rmtrash exiv2

, прежде чем вы сможете использовать следующую команду. Он был написан для сравнения JPG с NEF файлами с моего Nikon D90. Настройте расширения файлов в соответствии с вашими потребностями.

find . -name \*.NEF |sed s/\.NEF/.JPG/g | xargs find 2>/dev/null | \
xargs perl -e 'foreach(@ARGV) {my $jpg=$_;my $nef=s/\.JPG/.NEF/r; my $tjpg = `exiv2 -g Exif.Photo.DateTimeOriginal -pt $jpg`; my $nef=s/\.JPG/.NEF/r; my $tnef = `exiv2 -g Exif.Photo.DateTimeOriginal -pt $nef`; if($tjpg eq $tnef) {print "$jpg\n"}}' | \
xargs rmtrash

без проверки работоспособности все это станет очень коротким:

find . -name \*.NEF |sed s/\.NEF/.JPG/g | xargs find 2>/dev/null | xargs rmtrash
...