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

Re: Frage zu convert aus imagemagick und Dateinamen



On Monday 13 February 2006 15:12, Juergen Christoffel wrote:
> 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
>
oops, klar
[...]
>
> > 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.
>
Natürlich habe ich mir die angeguckt - und eben nur diesen "Singular-Fall" 
gesehen, der in der Realität wohl nie auftritt - jedenfalls nicht bei 
thumbnails. Und da er mehrere input-files mit *jpg nimmt, wäre nur noch 
die Frage, wie die Outputfiles zu bestimmen sind (ohne for, pipes etc.). 
Was passiert, wenn man keine angibt, habe ich in der letzten Mail 
geschildert - jedenfalls nicht "Missing output-file name" o.s.ä. - die 
Manpage ist da also unvollständig.

> > 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.
>
Aber das hab ich doch gemacht (nur unschöner). Mach dir mal einen 
Testordner mit 5 jpgs, dann wirst du sehn, dass convert dir nur 4 
thumbnails fabriziert und das muss irgendwas mit der Verarbeitung durch 
die bash zu tun haben.

> Tip: schau' in der Manualpage der Shell nach, was ${f} und ${f%...}
> machen, damit Du verstehen lernst.
>
Hmm, sorry, ich frag vorsichtshalber noch mal nach: ${f} müsste gleich $f 
sein und ${f%...} ist das " shortest matching  pattern (the  ``%'' case)", 
das du benutzt, damit du -t (oder -thumb oder was auch immer) zwischen 
Namen und Endung setzen kannst?
Besten Dank und Grüße,
Gebhard
-- 
In India, "cold weather" is merely a conventional phrase and has come into
use through the necessity of having some way to distinguish between weather
which will melt a brass door-knob and weather which will only make it 
mushy.
		-- Mark Twain



Reply to: