News:

2023-03-15 Major improvements to the new Geolocation feature

Main Menu

Specify starting number/letter for %c

Started by traycer, July 08, 2019, 03:37:16 AM

Previous topic - Next topic

traycer

I poked around a bit and couldn't find any mention of this before. Is it possible to specify the starting number or letter for %c?

I'm using exiftool to replicate the functionality of an older, deprecated tool used to download images from a memory card. When it encounters a duplicate destination filename, it appends a letter. The only difference is the other piece of software starts with 'a', whereas exiftool starts with 'b'. I thought I would be clever by specifying '%lnc', but alas that simply translates to a literal %lnc in the filename.  ;D

Phil Harvey

Try this: %-.lc

            By default, the copy number
            is omitted from the first file of a given name, but this can be
            changed by adding a decimal point to the modifier.

            [...]

                -w H%-lc.txt      # H.txt, H-b.txt, H-c.txt ...

            [...]

            All format codes may be modified by 'l' or 'u' to specify lower or
            upper case respectively (ie. %le for a lower case file extension).
            When used to modify %c or %C, the numbers are changed to an
            alphabetical base (see example H above).


- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Hayo Baan

Hi Phil,

The way I understand the question is that he wants file.ext, file-a.ext, file-b.ext, etc. Not file-a.ext, file-b.ext, file-c.ext. So no extension on the first, but thereafter starting with a, not b.
Hayo Baan – Photography
Web: www.hayobaan.nl

Phil Harvey

Ah, ok.  Right.  Then I understand the %lnc suggestion now.  This currently can't be done, and I don't like the idea of changing exiftool to allow multiple format modifiers, so I'm not sure what to suggest here.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Hayo Baan

There's always a regexp that could be applied to change the suffixes ;D
Hayo Baan – Photography
Web: www.hayobaan.nl

traycer

Phil,

I don't think overloading the semantics of a format modifier would be the right way to do it either. How about adding a range specification to %c? That could simultaneously address both the numbering type and the start/stop points? I'll borrow from bash, but obviously the actual syntax might be different:

%c{4} - 4, 5, 6, 7, 8, ...
%c{0004} - 0004, 0005, 0006, 0007, 0008, ...
%c{a} - a, b, c, d, e, ...
%c{L} - L, M, N, O, P ...
%c{0..15} - 0, 1, 2, ... 13, 14, 15
%c{P..C} - P, O, N, ... E, D, C
%c{100..999..5} - 100, 105, 110, ... 985, 990, 995
%c{cam1,cam2,cam3} - cam1, cam2, cam3, cam1, cam2, cam3, cam1, ...

(mostly based on https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html)

There would be some duplication of functionality with existing modifiers, but both systems could be maintained for compatibility. And it does seem like a lot of work just to satisfy my own personal use case, but I'm just spitballin' here.  ;D

traycer

Quote from: Hayo Baan on July 08, 2019, 04:02:35 PM
There's always a regexp that could be applied to change the suffixes ;D

You mean within exiftool itself, or running a separate rename script afterwards (which is what I've been doing)? My way is rather inelegant, though... basically just renaming 'b' to 'a', 'c' to 'b', 'd' to 'c', etc.

traycer

Quote from: Phil Harvey on July 09, 2019, 11:26:04 AM
Your idea sounds very powerful, but is more work than I think is justified by the demand for a feature like this.

How about simply allowing the specification of the starting number or letter? Although in my experience, most of the work is just adding the framework to allow for a new feature...  :-\

I don't need to update exiftool that often, so maybe I'll just keep a local patch that increments starting with 'a'.

Phil Harvey

Whoa.  Somehow my post wound up in the bit bucket.  Here it is back again:

It could be done with exiftool:

1. run your command to rename the files with suffixes '', '-b', '-c', ...

2. exiftool -fileorder filename "-filename<${filename;s/-([b-z])\./'-'.chr(ord($1)-1).'.'/e}" DIR

Your idea sounds very powerful, but is more work than I think is justified by the demand for a feature like this.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).