NAME iptckeyword - List and manipulate the IPTC keyword metadata stored in an image file. SYNOPSIS iptckeyword [--list] args iptckeyword --add | --set | --remove keyword[,keyword...] args iptckeyword --match (keywords and booleans) args iptckeyword --copy source_file args iptckeyword --synonyms [--synfile file] args iptckeyword --help | --man (args can be files or directories) DESCRIPTION iptckeyword uses the Image::IPTCInfo module to list and/or manipulate the keyword information that can be stored in the IPTC headers of an image file. iptckeyword can add, set or remove keywords, or match a list of keywords in the list of files/directories given on the command line. It can also expand a list of keyword synonyms and assign those synonyms to files. OPTIONS --help Print a brief help message and exits. --man Prints the manual page and exits. --r Allows directory recursion in the argument list. Without the -r flag, iptckeyword will ignore any directories in the arg list. Warning: this can be dangerous, especially adding, setting, or removing keywords. You have been warned. --list Lists keywords. --list is assumed if no other options are given. It can also be combined with other options, and will list the keywords after any other operations (add, remove, etc) are performed. --add Adds given keywords to keywords already in the file(s). --set Sets keywords in file to exact list given on command line. Use --set '' to clear the keywords in the file(s). --remove Removes given keywords from file. iptckeyword will not complain if the keyword doesn't exist. --copy Copies keywords from file given as argument to --copy to any other file(s) specified. --match Matches keywords given against file(s) given. Uses Text::Query::ParseAdvanced to parse the matchwords. This allows matches like 'horse and rider and not saddle' or '(cougar or puma or mountain lion) and arizona'. Words separated by spaces are considered to be part of the same phrase. Will match whole words only--however, one word from a multi-word phrase will match ('mount' wouldn't match the phrase 'mountain lion', but 'mountain' would). If you wish to avoid this behavior, use underscores instead of spaces ('mountain_lion' instead of 'mountain lion'). --synonyms Reads keywords in file(s) given on the command line, and looks in a synonyms file for a list of synonym keywords to expand out. By default, the synonyms file is the file .iptc_synonyms in your home directory. The format of the synonyms file is: keyword: other, keywords, that, the, first_keyword, expands to A keyword can expand to another keyword that also has expansions. iptckeywords parses them recursively, but avoids getting caught in a loop. For example: patas: monkey, zoo monkey: primate primate: animal So a file with the keyword of 'patas' will end up with patas, zoo, monkey, primate, and animal. This is a powerful way of adding multiple keywords that iptckeyword (or other programs) can then use to search by. --synfile Takes the argument of an alternative synonyms file when using the --synonyms switch. AUTHOR Paul Archer (paul at paularcher dot org) DEPENDENCIES Image::IPTCInfo, Getopt::Long, Pod::Usage, File::Finder, Text::Query BUGS Probably. Text::Query::ParseAdvanced throws two warnings. You'll have to modify the subroutines that contain the offending lines by removing the prototyping info in order to get rid of the warnings. LICENSE iptckeyword is released under the GNU Public License (GPL).