PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : *.jpg.* mittels shell sript umbennen



lprofil
19.05.2005, 00:32
Ich habe folgendes Problem:

Das tools "convert" habe ich benutzt um thumbnails für eine Bildergallerie zu erstellen. Soweit alles fein gelaufen, doch nun haben die generierten Bilder folgendes Muster prefix_des_bildes.jpg.nummer
Wie sieht das shell-script aus, mit dem ich die Namen vor und die Nummer hinter dem .jpg. beibehalten kann und die Datei auf .jpg enden lasse?

Für die GROSS klein Konvertierung hat folgendes script funktioniert:


for x in *; do mv $x `echo $x | tr [A-Z] [a-z]`; done

Danach habe ich die Bilder mit Hilfe von convert verkleinert und in der Qualität reduziert:


convert +profile '*' -thumbnail 128x96! -enhance -colorspace RGB -depth 8 -quality 60 *.jpg prefix_des_bildes.jpg

Jetzt fehlt mir das sript welches mir aus

prefix_des_bildes.jpg.01
ein
prefix_des_bildes01.jpg
oder
prefix_des_bildes_01.jpg
macht.

Ich wäre euch für jede Hilfe sehr dankbar.
Vielen Dank!

/lprofil

monarch
19.05.2005, 07:41
Versuch mal den da:

for file in *.jpg.*;
do `echo $file | awk -F '.' '{ print "mv " $file " " $1 "_" $3 "." $2}'` ;
done


Habs in der bash getestet.

skynnyr
19.05.2005, 08:30
Mit sed gehts auch:

ls -1 *.jpg.* | sed -n 's/\(.*\)\.txt\(\..*\)/mv & \1\2.txt/p' | /bin/sh

Mit awk ist es m.E. allerdings übersichtlicher.

lprofil
19.05.2005, 10:50
Vielen Dank für die schnelle Antwort!

Ich habe es mit beiden scripten ausprobiert wobei nur das erste funktioniert hat. Warum das so ist erschliesst sich mir nicht, da meine scripting Kenntnisse noch nicht soweit gediegen sind. Ich finde es alledings interessant wie vielschichtig die Möglichkeiten in der shell sind.

Habt Ihr eingentlich eine literarische Empfehlung zum scripten?
Ist "Teach Yourself Shell Programming in 24 Hours" von
"Sriranga" Veeraraghavan erschienen im "Sams Publishing" Verlag empfehlenswert?

/lprofil

ps: das Ergebniss wir auf folgender Seite zu betrachten sein:
http://home.arcor.de/riga05/

skynnyr
19.05.2005, 11:47
Sorry. Habe das Script mit .txt Dateien getestet. Darum sind da noch zwei .txt die eigentlich .jpg sein sollten:

ls -1 *.jpg.* | sed -n 's/\(.*\)\.jpg\(\..*\)/mv & \1\2.jpg/p' | /bin/sh

Für sed und awk gab es mal ein gutes Buch bei Addison-Wesley. Dort wurden auch Tools wie make, flex und bison abgehandelt. So wie es aussieht gibts nur noch den awk und sed Teil: awk & sed (http://www.addison-wesley.de/main/main.asp?page=deutsch/bookdetails&productid=37214&SID={C192AB9C-DB34-47EF-B98B-66EBB9580ABD}&TOKEN={26325774-8B8B-4A51-9F80-8051948034EC}). Der Leseprobe nach zu urteilen, handelt es sich um die beiden Kapitel aus dem mir bekannten Buch "Linux Profitools".
Buchempfehlungen für die Shell-Programmierung kann ich leider nicht abgeben. Nach dem Studium eines beliebigen Web-Tutorials ist eigentlich "man bash" völlig ausreichend. Die Tricks of the Trade kann man dann von existierenden Shellscripts abkupfern :)

neutrino1
19.05.2005, 14:35
Hi!

Das sollte auch funktionieren:
for R in "*jpg*";do mv $R ${R/.jpg}.jpg;done

Ciao

Phate
19.05.2005, 14:37
Das ist auch ganz gut:
http://www.amazon.de/exec/obidos/ASIN/3826608836/php4scriptede-21/028-0894339-3021358

lprofil
20.05.2005, 00:54
Vielen Dank an alle! Ich bin überwältigt von der Resonanz.

@skynnyr
ich hatte mich ein wenig über die txt's gewundert, aber so funzt es nun.

@Phate
interessante Buchempfehlung

@neutrino1
schön knapp, vielen Dank auch dafür!

/lprofil

ps: das photo album generiere ich mit "album". Ich schreibe mir gerade mein eigenes theme, damit ich nicht die Oxentour mit manipulieren der generierten html Dateien machen muss. Open Source - ik liebe Dir!