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

Re: convert et noms des fichiers



On 03/07/2011 20:29, Bernard Schoenacker wrote:
	pourquoi ne pas être un peut plus futé ?

Parce qu'il me semble que la simplicité est une vertu irremplaçable, mais qui se perd (gimp-console + scripts-fu, cela me parait compliqué pour une opération que convert sait faire). Christophe a posé une question simple et il me semble la réponse l'est aussi.


	je reprend le script ci dessus :
	
	detox utf_8 *.jpg
	rename 'y/A-Z/a-z/' *.jpg
	for img in ` tree |grep jpg |awk '{print $2}' |xargs`
	do
	    convert -density 300  $img  small-$img
	done
	
Je ne comprends pas pourquoi utiliser detox, ni pourquoi changer la casse des noms de fichiers? A part pour le grep qui suit (mais sachant que grep -i est insensible à la casse, le changement de casse devient inutile).

D'autre part, la séquence `tree |grep jpg |awk '{print $2}' |xargs` parait inutilement lourde: l'utilisation de tree me parait maladroite: un semblant de parcours récursif est ébauché, mais awk se cantonne à lire la seconde colonne, ce qui n'aide pas non plus lorsque les noms de fichiers contiennent des espaces (noms sur les colonnes 2 à n). Par ailleurs, `grep jpg` peux retourner de faux positifs si 'jpg' fait partie du nom sans extension de certains fichiers.

Ou alors quelque chose m'échappe, et j'aimerai bien savoir quoi!

Enfin, une bonne habitude à prendre est de toujours encadrer les variables shell par des guillemets de manière à ne pas planter au premier nom de fichier qui contient un caractère espace.

Bref, je crois que la commande toute simple que je proposais précédemment est toujours d'actualité (avec l'option "-density 300" c'est mieux!):

  for i in *.jpg; do convert -density 300 "${i}" small-"${i}"; done

Nicolas


Reply to: