output list

Started by george013, July 28, 2019, 06:19:33 AM

Previous topic - Next topic

george013

I couldn't find an answer here so this post.
I try to get a list of used keywords. I used the basic exiftool -keywords *.* for that. All keywords where written to screen correct.
Trying to get those words written to a file I tried the following.

exiftool -keywords *.* >key.txt
unknown file type -key.txt

exiftool -keywords *.* > key.txt    ..a space added after >
unknown file type -key.txt

exiftool -keywords *.* > key.csv
unknown file type key.csv
unknown file type key.txt  ????????

exiftool -keywords *.* > key.txt
unknown file type key.csv ???????
unknown file type key.txt

The above are written in chronological sequence.
First: why do I get 'unknown file type'.
Second: why does it remember a former command?
Third: why do I get smiley's when I didn't add them?. Seems 3 times ? gives a smiley.

Thanks.

George

Hayo Baan

Since you use *.* ALL files in the directory will be used, this will include the key.txt (and key.csv) file that you just asked exiftool to generate (which themselves are unknown file types to exiftool). Remove those and generate the output in a separate directory to prevent the warnings :)
(actually you already have what you want in both key.csv and key.txt, but above explains what you see)


And yes, three times a ? gives a ??? just like : followed by ) gives a :)
Hayo Baan – Photography
Web: www.hayobaan.nl

george013

I think I found the answer.
The output file is first written to that directory and when working on *.* it's read to. That's why it 'remembers' the other output file, it was on the disk already.
"unknown file type" is meant for the input file, not for the output file. :-\.

I see Hayo has posted this just now.

George

george013

*.nef solved it. Thanks.



george013

Another example I can't explain.
exiftool -keywords v:\d750  works with all the file in the mentioned directory.

exiftool -keywords v:\d750 -r works with all the files in the mentioned directory and with all it's subdirectories.

exiftool -keyword v:\d750\*.nef works as expected too.
exiftool -keyword v:\d750\*.nef -r doesn't work recursive. It looks like it can't see the difference between a file and a directory.

In a Pascal program I just read over 60000 records extracting keywords, aperture and shutterspeed. It took about 33 minutes. That's about 30 files per second. Is that a fair speed?

George

StarGeek

Make sure you read the docs on the -r option.

   Recursively process files in subdirectories. Only meaningful if FILE is a directory name.

What you want to use instead of *.nef is the -ext (extension) option, e.g. -ext nef
* Did you read FAQ #3 and use the command listed there?
* Please use the Code button for exiftool code/output.
 
* Please include your OS, Exiftool version, and type of file you're processing (MP4, JPG, etc).

george013

Excuse me for asking more.
I learned from another thread here I could use a tab form output. Selecting that -T and only keywords gives me an output with only the keywords, no filenames and comments. That's ok. But also the images with no keywords are send to the output file. I'm trying to use something as if -keyword ne empty. I just can't find info on how to write that in this script.

My goal is to create a list of used keywords, just that. Exiftool can give me a list with the used keywords per image. Later I've to extract the individual keywords and add them to a list/database only once a time, so unique. I don't think this can be done with Exiftool.

George

Hayo Baan

No need to be fancy in this case. -if '$keywords' should be enough (on Windows, change single quotes into double quotes).
Hayo Baan – Photography
Web: www.hayobaan.nl

george013

Thanks. That worked.

George

george013

When reading the output list I noticed that after the first keyword a leading blank is added to the next keywords. Is there a way to avoid that? Or is a combination of comma+blank used as a delimiter?

I just keep asking  ;D

George

Hayo Baan

Yep, that's the default. However, you can specify the output separator to be used with -sep. E.g. to have a comma without space, use -sep "," :D
(quotes in this case aren't even necessary, but added for clarity)
Hayo Baan – Photography
Web: www.hayobaan.nl