Как найти и вернуть имена всех изображений, содержащих определенные метаданные?

Я хочу найти в моем каталоге все файлы .jpg, содержащие определенный тег, и скопировать их в другой каталог. В частности, я использую GThumb, который позволяет мне добавлять теги к моим фотографиям - он сохраняет их в виде списка в разделе Ключевые слова: exiftool -Keywords IMG_0205.JPG выходы Ключевые слова: зима, nice_photos, my_anther_tag . И я хочу найти все изображения, содержащие тег «зима», и скопировать их в другой каталог. Однако я не нашел способа указать, что я хочу отображать имена файлов только тех изображений, которые содержат тег «зима». Я попытался также использовать jhead , но с той же проблемой, или объединить его с grep, а затем sed, но это кажется слишком сложным (поскольку я даже не знаю, как хотя бы указать имя файла в та же строка, что и ключевое слово: зима, ...).

Есть ли у вас какие-либо советы, как это сделать?

1
задан 27 November 2020 в 08:21

1 ответ

Это SMOP (Простое программирование).

Используйте find и xargs (прочитайте man find xargs), чтобы передать список всех файлов .jpg в скрипт bash.

В скрипте пройдитесь по списку файлов с

while [[ $# -gt 0 ]] ; do
    file="$1"
    shift
    ...
    do something with "$file"
    ...
done

конструкцией.

В части "сделайте что-нибудь с "$file"" используйте exiftool, чтобы извлечь нужное свойство, протестировать его и переместить (или нет) "$file" или просто printf имена квалифицированных файлов.

0
ответ дан 27 November 2020 в 05:40

Другие вопросы по тегам:

Похожие вопросы: