25

I am trying to save the camera make to a variable in my Bash script. If I use:

exiftool -make x.jpg

This returns:

MAKE : SAMSUNG

I need it to return just the value, without the key and colon.

wesleywmd
  • 353
  • 1
  • 2
  • 6

3 Answers3

35

From the man page:

-s[NUM] (-short)
Short output format. Prints tag names instead of descriptions.
Add NUM or up to 3 -s options for even shorter formats:

   -s1 or -s        - print tag names instead of descriptions
   -s2 or -s -s     - no extra spaces to column-align values
   -s3 or -s -s -s  - print values only (no tag names)

-S (-veryShort) Very short format. The same as -s2 or two -s options. Tag names are printed instead of descriptions, and no extra spaces are added to column-align values.

So, any of the following will work:

exiftool -s -s -s -make x.jpg

exiftool -s3 -make x.jpg

exiftool -s -S -make x.jpg

Note that combining multiple -s options into -sss, such as increasing -v/-vv/-vvv verbosity in some Linux/Unix command line utilities such as tcpdump, will not work.

mattdm
  • 143,140
  • 52
  • 417
  • 741
11

Use -b:

$ exiftool -b -make x.jpg

From the man page:

-b (-binary)

Output requested metadata in binary format without tag names or descriptions. This option is mainly used for extracting embedded images or other binary data, but it may also be useful for some text strings since control characters (such as newlines) are not replaced by '.' as they are in the default output. List items are separated by a newline when extracted with the -b option. May be combined with "-j", "-php" or "-X" to extract binary data in JSON, PHP or XML format.

Highlight mine; it does what it says on the tin!

starfry
  • 403
  • 4
  • 10
4

The -T option will hide the tag name, so you get only the value (example with a different tag ImageDescription):

exiftool -s -T -ImageDescription $HOME/Downloads/2023-02-15_HippoDayChobe.jpg