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: