Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
withorwithoutaname
- Beiträge: 30
- Registriert: 27.11.2006 11:51:22
Beitrag
von withorwithoutaname » 12.01.2007 19:56:03
Hallo Leute,
ich habe hier über 1000 pbm-Grafikdateien,
0001.pbm usw., die ich mit
Code: Alles auswählen
for i in $(ls *.pbm); do convert $i -resize ... $i ; done
bearbeiten will (convert=
Imagemagick). Leider bleibt die Schleife beim Zähler 999 stehen.
Was kann man machen?
Gruß,
DS
-
GoKi
- Beiträge: 2068
- Registriert: 04.07.2003 23:08:56
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von GoKi » 12.01.2007 20:08:03
z.B. find benutzen, damit die bash nicht das * expandiert
das hier nutze ich z.B. in einem meiner Scripts
Code: Alles auswählen
#!/bin/bash
for FILE in $(find . -name "*.jpg"); do
PNG=${FILE%.jpg}.png
echo -n "Converting $FILE => $PNG "
convert $FILE $PNG
echo "done."
done
MfG GoKi
:wq
-
withorwithoutaname
- Beiträge: 30
- Registriert: 27.11.2006 11:51:22
Beitrag
von withorwithoutaname » 12.01.2007 20:15:35
Im Zusammenhang damit: ich habe gerade gesehen, daß die bash die Filenamen (0001.pbm-1305.pbm) so sortiert (ls *.pbm):
001.pbm
002.pbm
...
099.pbm
1000.pbm
1001.pbm
...
1009.pbm
100.pbm
1010.pbm
...
999.pbm
(Ende)
Kann man das ändern?
DS
-
dopehouse
- Beiträge: 452
- Registriert: 01.09.2005 12:02:16
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Hildesheim (Niedersachsen)
-
Kontaktdaten:
Beitrag
von dopehouse » 12.01.2007 22:01:23
Also mein Vorschlag wäre sowas in der Art:
Code: Alles auswählen
#!/bin/bash
for i in *.pbm
do
convert $i -resize ... $i
done
Habe z.B. ein Script, dass mir aus allen Bildern eines Verzeichnises Thumbnails in einem Unterverzeichnis erstellt und dabei gleich noch die Thumbnails etwas platzsparender als JPEG speichert.
Code: Alles auswählen
#!/bin/bash
dir="thumbs"
ext="jpeg"
mkdir -p "$dir"
for i in *.png
do
name=`echo "$i" | sed 's/\.png//'`
echo "$i => $dir/$name.$ext"
convert "$i" -resize 150 -quality 40 "$dir"/"$name"."$ext"
done
echo "Fertitsch!"