Bilder Sortieren

U

unixman1

Hallo...

Ich befasse mich seit einiger Zeit mit Centos und so weit hab ich das schon im Griff - was ich jetzt beginnen möchte - sind Shellscripts, wo ich auch schon ein Beispiel habe:

Ich möchte in einen Ordner hunderte von Bildern, die so sinnige namen wie 12erw335.jpg, 45zte.JPG haben, in einen Rutsch umbenennen - und zwar in 1.jpg, 2.jpg usw.
Was wäre das beste Vorgehen...?

Ich hab mir von Patrick Ditchen das Buch Shellskript Programmierung gekauft, was ich sehr gut finde, aber bis ich da durch bin , dauerts noch..
 
Hallo

entweder man macht sowas per shell-script, perl, python, oder man installeirt z.B. pyrename, gprename !

mfg
schwedenmann
 
Quick'n dirty..
hatte gerade keine Lust auf besonders hübschen code.. aber sollte funktionieren. Immerhin nimmt das Skript die Dateiendung mit. :)
.. noch nicht perfekt.. aber zum weiterbasteln dürfte es ja evtl reichen.

#!/bin/bash
datei=`ls -la|sed -e '1,3d'|awk '{print $9}'`;
anzahl=`ls -la|sed -e '1,3d'|awk '{print $9}'|wc -l`;
counter=0
while [ $counter -lt $anzahl ]; do
for i in $datei; do
counter=$(( $counter + 1 ));
if [ -z `echo $i|awk -F"." '{print $2}'` ];
then
neu=$counter
mv -f $i $neu
else
endung=`echo $i|awk -F"." '{print $2}'`;
neu=$counter.$endung
mv -f $i $neu
fi
done
done
 
Zuletzt bearbeitet:
So, hier Version 0.2 alpha!
Nun nimmt es auch Leerzeichen im Dateinamen mit und lässt Ordner aus.
Die while-Schleife war übrigens unnötig. :))



#!/bin/bash

# BINS
BIN_LS=/bin/ls
BIN_ECHO=/bin/echo
BIN_MV=/bin/mv
BIN_SED=/bin/sed
BIN_AWK=/usr/bin/awk
BIN_GREP=/bin/grep
BIN_WHOAMI=/usr/bin/whoami

# VARS
COUNTER=0
IFS="
"

# MAIN
if [ ! -z $1 -a -d $1 ]; then
cd $1;
DATEI=`$BIN_LS -a --file |$BIN_GREP -v /$`;

for I in $DATEI; do
COUNTER=$(( $COUNTER + 1 ));
ENDUNG=`$BIN_ECHO $I|$BIN_AWK -F"." '{print $2}'`;
NEU=`$BIN_ECHO $COUNTER.$ENDUNG|$BIN_SED "s/\.$//"`;
$BIN_MV $I $NEU;
done
else
$BIN_ECHO -e "usage: $0 DIRECTORY\nexample: $0 /home/`$BIN_WHOAMI`/pictures";
fi
 
Zuletzt bearbeitet:
Zurück
Oben