[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Frage zu convert aus imagemagick und Dateinamen



On Mon, Feb 13, 2006 at 01:54:58PM +0100, Gebhard Dettmar wrote:
> for i in `ls *jpg`; do convert -resize 100x100 $i thumbs$i; done

Vorab: nicht `ls *.jpg` sondern for f in *jpg; do

Den Stern expandiert in beiden Faellen die Shell, also brauchst dafuer Du
kein "ls" dazwischen.

> Wieso nimmt convert nicht den jeweiligen Dateinamen, den ihm *jpg
> liefert?

Hast Du Dir schon mal die Manualpage dazu angesehen? Dort steht

  SYNOPSIS
       convert input-file [options] output-file

Also erwartet convert genau ein Inputfile, mehrere Optionen und dann genau
ein Outputfile. Sonst stuende dort der Plural {input,output}-files.

> Ist da die bash oder convert für verantwortlich?

Weder noch. Die tun, was Du ihnen sagst, also bist Du dafuer
verantwortlich. Du kannst beispielsweise folgendes machen (falls Deine
Shell die Bash o.ae. ist):

for f in *jpg ; do
  g=${f%.jpg}
  convert -resize 100x100 $g-t.jpg
done

Hier kriegt die Variable g den Filenamen ohne die Endung ".jpg" und dann
kannst Du als output-file bei convert z.B. die Endung "-t.jpg" anhaengen.

Tip: schau' in der Manualpage der Shell nach, was ${f} und ${f%...} machen,
damit Du verstehen lernst.

	--jc

-- 
  In zweifelhaften Fällen entscheide man sich für das Richtige.
	-- Karl Kraus (1874-1936) 



Reply to: