Zeichenkette e.Variablen i.d."Mitte" ergänzen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Theophil T.
Beiträge: 402
Registriert: 22.10.2006 20:24:59
Lizenz eigener Beiträge: MIT Lizenz

Zeichenkette e.Variablen i.d."Mitte" ergänzen

Beitrag von Theophil T. » 27.04.2007 21:09:04

Hallo,

ich möchte eine Variable, der Wert typischerweise eine Zeichenkette wie "022002.jpg", ergänzen mit einer zweiten Variablen, Wert z.B. "b", in der Weise, daß dabei "022002b.jpg" herauskommt.

Ich brauche das für ein Skript, mit dem ich mehrere Bilddateien mit convert als Batchauftrag ändern kann.

Habe schon mit "tr" und "sed" experimentiert, aber bisher noch kein richtiger Erfolg.

Danke für Eure Hilfe.

Viele Grüße
Theophil
Zuletzt geändert von Theophil T. am 27.04.2007 22:50:53, insgesamt 1-mal geändert.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 27.04.2007 21:15:50

vielleicht stelle ich mir das Problem nur zu einfach vor ?

Code: Alles auswählen

root@debi:~# oldfilename=022002.jpg
root@debi:~# newfilename=`echo $oldfilename | sed -e 's/\./b./'`
root@debi:~# echo $newfilename
022002b.jpg
Gruß
gms

Theophil T.
Beiträge: 402
Registriert: 22.10.2006 20:24:59
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Theophil T. » 27.04.2007 21:45:51

Hallo gms,

Dein code funktioniert! Ich hatte es ähnlich probiert, aber keine Hochkommata gesetzt.

Danke und Grüße
Theophil

Theophil T.
Beiträge: 402
Registriert: 22.10.2006 20:24:59
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von Theophil T. » 27.04.2007 22:19:34

Habe eben nochmal das ganze Skript getestet, funktioniert genau so wie ich es wollte:

Code: Alles auswählen

#! /bin/bash

echo "Batch-Konvertierung von Bild-Dateien,im gewuenschten Verz.starten!"
echo -n "Bitte Bilddateien auswaehlen:"
read d
echo -n "Ergaenzung des Dateinamens:"
read e
echo -n "neue Pixelgroesse:"
read p
echo -n "Kompression:"
read q
echo

for b in $d; do
	convert $b -resize $p -quality $q $(echo $b | sed -e "s/\./$e\./")
done
 
Nochmals Danke für den Tip!
Theophil

Antworten