[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Dateinummerierungsreihenfolge umkehren



On Mon, Jan 17, 2011 at 10:02:31PM +0100, Peter Schütt wrote:
> Hallo,
> ich habe einige Papierfilme falsch herum eingescannt.
> 
> Nun sind die 
> Pict0001, Pict0002, ... Pict0035 
> benannt, sie sollen aber
> Pict0035, Pict0034, ... Pict0001
> heißen (ich denke, es ist klar, was ich meine).
> 
> Der Witz ist, daß ich das schon einmal hinbekomme habe, aber mir fällt es 
> ums Verrecken nicht mehr ein.
> 
> Als Fotoverwaltung verwende ich Digikam. Da kann man leider als 
> Umbenennungsstep keinen negativen Wert eingeben.

Eine quick-and-dirty Lösung in Bash:
(Wechsle ins Verzeichnis mit den Bildern und stelle sicher, dass nur
diejenigen Bilder, die umbenannt werden sollen, im aktuellen Verzeichnis
liegen und mit "Pict" beginnen)

mkdir BACKUP
cp -a Pict* BACKUP/
mkdir sorted
paste <(ls Pict* | tac) <(ls Pict* | sed -e 's#^#sorted/#') | xargs -n2 mv

# Jetzt sollten alle umbenannt sein und im Verzeichnis sorted/ liegen

------ Test/Veranschaulichung ----------
$ mkdir testdir
$ cd testdir
$ mkdir sorted
$ for i in $(seq -w 1 10) ; do
>       touch Pict"$i"
$ done

# Jetzt sieht es bei mir ungefähr so aus wie bei dir:
$ ls
Pict01  Pict03  Pict05  Pict07  Pict09  sorted
Pict02  Pict04  Pict06  Pict08  Pict10

# one-line-hack
$ paste <(ls Pict* | tac) <(ls Pict* | sed -e 's#^#sorted/#')
Pict10  sorted/Pict01
Pict09  sorted/Pict02
Pict08  sorted/Pict03
Pict07  sorted/Pict04
Pict06  sorted/Pict05
Pict05  sorted/Pict06
Pict04  sorted/Pict07
Pict03  sorted/Pict08
Pict02  sorted/Pict09
Pict01  sorted/Pict10

# Damit kannst du zb xargs füttern, wie oben, nur mit vorangestelltem
# echo:

$ paste <(ls Pict* | tac) <(ls Pict* | sed -e 's#^#sorted/#') |
> xargs -n2 echo mv
mv Pict10 sorted/Pict01
mv Pict09 sorted/Pict02
mv Pict08 sorted/Pict03
mv Pict07 sorted/Pict04
mv Pict06 sorted/Pict05
mv Pict05 sorted/Pict06
mv Pict04 sorted/Pict07
mv Pict03 sorted/Pict08
mv Pict02 sorted/Pict09
mv Pict01 sorted/Pict10

--------------------------------------

Aber Achtung: solche selbstgebaute Commandlines sind immer mit Vorsicht
zu genießen: Die obige Lösung versagt, wenn Dateinamen Leerzeichen oder
Newlines, oder sonstige Steuerzeichen enthalten.


Reply to: