Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/05/2006, à 10:01

Isaric

[Résolu] Mon_premier Sh pour modifier des images

Digikam ne marchant pas encore sur Dapper
Je tente

#!/bin/bash
IMG_EXT="jpg"
IMAGES_PREFIX="Mon_Pref-"

#**** Conversion/effacement par lot L=1600 de toutes les images en jpeg ********
#-------------------------------------------------------------
for i in `ls *.*`
do
        FILENAME=`basename $i .jpg`
        echo "redimensionnement" $FILENAME.$IMG_EXT" en L=1600"
        convert -resize 1600 $i $IMAGES_PREFIX$FILENAME.$IMG_EXT
	rm -fr $FILENAME.$IMG_EXT
done

Cela ne semble pas marcher pour des noms de fichiers avec des blancs.
Je souhaite rajouter un truc dans le genre

#**** Renommer par lot les accents et les blancs ********
#-------------------------------------------------------------
for file in *
do
   file_mod=`echo "$file" | tr '[àâäéèêëîïôöùûü ]' '[aaaeeeeiioouuu_]' | sed -e "s/'/_/g"`
   mv "$file" "$file_mod"
done

Mon problème c'est que les blancs " " deivennent "]" est-ce juste un problème de Dapper ou mon code n'est pas bon ?

Dernière modification par Isaric (Le 22/05/2006, à 14:26)


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#2 Le 11/05/2006, à 10:11

benjou

Re : [Résolu] Mon_premier Sh pour modifier des images

ABSOLUMENT PAS SUR de moi

mais en bash, les espaces ( ) sont codés (\ ) donc ne faudrait-il pas que tu écrives
tr '[àâäéèêëîïôöùûü\ ]' '[aaaeeeeiioouuu_]'   ??? (enfin comme je ne connais même pas la commande tr...)


écrasons l'infâme

Hors ligne

#3 Le 11/05/2006, à 10:32

cep_

Re : [Résolu] Mon_premier Sh pour modifier des images

ou essaye de mélanger find .... -print0 et | xargs -0 ....

#4 Le 11/05/2006, à 10:57

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

benjou a écrit :

ABSOLUMENT PAS SUR de moi

mais en bash, les espaces ( ) sont codés (\ ) donc ne faudrait-il pas que tu écrives
tr '[àâäéèêëîïôöùûü\ ]' '[aaaeeeeiioouuu_]'   ??? (enfin comme je ne connais même pas la commande tr...)

Si je mets
tr '[àâäéèêëîïôöùûü\]' '[aaaeeeeiioouuu_]'
Les blancs restent des blancs !

Et j'ai le même problème avec les autres lettres un "é" devient "]i"


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#5 Le 11/05/2006, à 11:15

cep_

Re : [Résolu] Mon_premier Sh pour modifier des images

Si tu n'as pas de sous-répertoires, inutile de te compliquer la vie :

:~$ vdir photos2
total 844
-rwx------  1 cep cep 134505 2006-04-30 10:50 buché\ ron.jpg
-rwx------  1 cep cep 171108 2006-04-30 10:50 dé\ coup1.jpg
-rwx------  1 cep cep 160765 2006-04-30 10:50 dé\ coup2.jpg
-rwx------  1 cep cep 178656 2006-04-30 10:50 decoup3.jpg
-rwx------  1 cep cep 191590 2006-04-30 10:51 decoup4.jpg
:~$ mogrify -resize 150% ~/photos2/*
:~$ vdir photos2
total 1288
-rwx------  1 cep cep 209493 2006-05-11 11:08 buché\ ron.jpg
-rwx------  1 cep cep 262743 2006-05-11 11:08 dé\ coup1.jpg
-rwx------  1 cep cep 248419 2006-05-11 11:08 dé\ coup2.jpg
-rwx------  1 cep cep 273913 2006-05-11 11:08 decoup3.jpg
-rwx------  1 cep cep 293812 2006-05-11 11:08 decoup4.jpg

mogrify a redémensionné les photos de 800x600 à 1200x900

Les noms avec espaces et accents avaient été mis juste pour la démo smile

Si tu as des sous-répertoires, adapte ou fais par lots pour ne pas surcharger le système s'il y a beaucoup de photos.

#6 Le 11/05/2006, à 12:44

benjou

Re : [Résolu] Mon_premier Sh pour modifier des images

c'est backslash+espace (\ ) pas backslash tout seul(\)

essaie plutot ca...


écrasons l'infâme

Hors ligne

#7 Le 11/05/2006, à 12:58

cep_

Re : [Résolu] Mon_premier Sh pour modifier des images

for i in * ; do mv "$i" `echo $i | tr "àçéèêëîïôöùü " "aceeeeiioouu_"` ; done

pour accents et espaces \  remplacés par _
Tu peux aussi ajouter les majuscules si nécessaire.

#8 Le 11/05/2006, à 13:48

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

cep_ a écrit :

for i in * ; do mv "$i" `echo $i | tr "àçéèêëîïôöùü " "aceeeeiioouu_"` ; done

pour accents et espaces \  remplacés par _
Tu peux aussi ajouter les majuscules si nécessaire.

aéy 2.jpg     devient     a_ey_2.jpg

le "é"=>"_e"


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#9 Le 11/05/2006, à 14:51

cep_

Re : [Résolu] Mon_premier Sh pour modifier des images

monsieur pinaille smile

fais une recherche sur sed par exemple. Je n'ai pas trop le temps d'écrire les correspondances.

#10 Le 11/05/2006, à 15:44

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

for i in * ; do mv "$i" `echo $i | tr "àçéèêëîïôöùü " "aceeeeiioouu_"` ; done

aéy 2.jpg     devient     a_ey_2.jpg
le "é"=>"_e"

for i in * ; do mv "$i" `echo $i | tr "àçéèêëîïôöùü " "aceeeeiioouu-"` ; done

aéy 2.jpg     devient     a-ey-2.jpg
le "é"=>"-e"

Comment ça marche ?


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#11 Le 11/05/2006, à 16:51

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

for i in * ; do mv "$i" `echo $i | tr " " "_"` ; done
for i in * ; do mv "$i" `echo $i | tr "é" "e"` ; done

aéy 2.jpg     devient    aeey_2.jpg

"é"->"ee"


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#12 Le 11/05/2006, à 18:59

cep_

Re : [Résolu] Mon_premier Sh pour modifier des images

Alors inspire-toi de ceci (il te faudra ajouter les autres lettres avec accents et s'il y a des sous-répertoires voir plutôt avec find) :

#!/bin/bash
for i in * ; do
    nom=`echo $i | sed -e s/\ /\_/g |
sed -e s/\é/\e/g |
sed -e s/\è/\e/g |
sed -e s/\ê/\e/g |
sed -e s/\ù/\u/g |
sed -e s/\ /\_/g`
mv "$i" "$nom"
done

Mais, encore une fois regarde ce que j'ai mis plus haut pour mogrify qui est très simple et utilise éventuellement les % sans s'occuper des noms et de l'orientation.

Bonne continuation.
cep

#13 Le 11/05/2006, à 21:40

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

Merci cep

Cela marche bien, mais seulement pour les Largeurs

#!/bin/bash

#**** Renommer par lot les accents et les blancs ***
#---------------------------------------------------

for i in * ; do
    nom=`echo $i | sed -e s/\ /\_/g |
sed -e s/\à/\a/g |
sed -e s/\ç/\ç/g |
sed -e s/\é/\e/g |
sed -e s/\é/\e/g |
sed -e s/\è/\e/g |
sed -e s/\ê/\e/g |
sed -e s/\ë/\e/g |
sed -e s/\î/\i/g |
sed -e s/\ï/\i/g |
sed -e s/\ô/\o/g |
sed -e s/\ö/\o/g |
sed -e s/\ù/\u/g |
sed -e s/\ü/\u/g |
sed -e s/\ /\_/g`
mv "$i" "$nom"
done 
#-------------------------------------------------------------

IMG_EXT="jpg"
IMAGES_PREFIX="Mon_Pref-"

#**** Conversion/effacement par lot L=1600 de toutes les images en jpeg ********
#-------------------------------------------------------------
for i in `ls *.*`
do
        FILENAME=`basename $i .jpg`
        echo "redimensionnement" $FILENAME.$IMG_EXT" en L=1600"
        convert -resize 1600 $i $IMAGES_PREFIX$FILENAME.$IMG_EXT
	rm -fr $FILENAME.$IMG_EXT
done

Et aussi

#!/bin/bash
#---------------------------------

#*** Conversion par lot Dimension-max : 1600x1200 de toutes les images en jpeg ***
#---------------------------------
mogrify -resize 1600x1200 *.jpg
#---------------------------------

Dernière modification par Isaric (Le 12/05/2006, à 08:13)


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#14 Le 11/05/2006, à 22:20

cep_

Re : [Résolu] Mon_premier Sh pour modifier des images

mais seulement pour les Largeurs
mogrify -resize 1600x1200 *.jpg

Normal si tu positionnes la commande ainsi.
Je t'avais proposé des pourcentages. Si bien sûr les dimensions de départ sont toutes les mêmes.

Voir man mogrify et les adresses indiquées dans le man pour une doc complémentaire. Il y a beaucoup de possibilités.

#15 Le 12/05/2006, à 08:10

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

J'utilise :

#!/bin/bash

#---------------------------------
#*** Modification de format PNG ***
#---------------------------------
mogrify -format jpg *.png

#--------------------------------------------------
#*** Renommer par lot les accents et les blancs ***
#--------------------------------------------------

for i in * ; do
    nom=`echo $i | sed -e s/\ /\_/g |
sed -e s/\à/\a/g |
sed -e s/\ç/\ç/g |
sed -e s/\é/\e/g |
sed -e s/\é/\e/g |
sed -e s/\è/\e/g |
sed -e s/\ê/\e/g |
sed -e s/\ë/\e/g |
sed -e s/\î/\i/g |
sed -e s/\ï/\i/g |
sed -e s/\ô/\o/g |
sed -e s/\ö/\o/g |
sed -e s/\ù/\u/g |
sed -e s/\ü/\u/g |
sed -e s/\ /\_/g`
mv "$i" "$nom"
done 


#---------------------------------
#*** Effacement des fichiers PNG ***
#---------------------------------

for i in `ls *.png`
do
rm $i
done


#---------------------------------
#*** Conversion par lot Dimension-max : 1600x1200 de toutes les images en jpeg ***
#---------------------------------
mogrify -resize 1600x1200 *.jpg


#-------------------------------------------------------------
#*** rajout d'un préfix de toutes les images en jpeg ***
#-------------------------------------------------------------
IMAGES_PREFIX="Mon_Pref-"

for i in `ls *.jpg`
do
        FILENAME=`basename $i`
        echo "rajout d'un préfix à" $FILENAME
        rename  $FILENAME $IMAGES_PREFIX$FILENAME
done

On me dit :

...
rajout d'un préfix à a_d_0.jpg
Bareword "a_d_0" not allowed while "strict subs" in use at (eval 1) line 1.
Bareword "jpg" not allowed while "strict subs" in use at (eval 1) line 1.

Dernière modification par Isaric (Le 12/05/2006, à 14:37)


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#16 Le 12/05/2006, à 10:57

bobuse

Re : [Résolu] Mon_premier Sh pour modifier des images

Isaric a écrit :

Digikam ne marchant pas encore sur Dapper

C'est quoi c'te blague hmm
Moi j'ai jamais eu de problème !

Hors ligne

#17 Le 12/05/2006, à 11:38

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

bobuse a écrit :

C'est quoi c'te blague hmm
Moi j'ai jamais eu de problème !

Digikam ne marche pas sur Dapper

Je viens de faire une mise à jour Dapper... autre exemple une photo sur /home/isaric/Desktop
--> clic droit--> ouvrir avec Digikam et cela ne marche pas chez moi !


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#18 Le 15/05/2006, à 12:00

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

Revenons à mon problème de script :

...
#-------------------------------------------------------------
#*** rajout d'un préfix de toutes les images en jpeg ***
#-------------------------------------------------------------
IMAGES_PREFIX="Mon_Pref-"

for i in `ls *.jpg`
do
        FILENAME=`basename $i`
        echo "rajout d'un préfix à" $FILENAME
        rename  $FILENAME $IMAGES_PREFIX$FILENAME
done

Pourquoi  me dit_on :

...
rajout d'un préfix à a_d_0.jpg
Bareword "a_d_0" not allowed while "strict subs" in use at (eval 1) line 1.
Bareword "jpg" not allowed while "strict subs" in use at (eval 1) line 1.

Si je mets

#-------------------------------------------------------------
#*** rajout d'un préfix de toutes les images en jpeg ***
#-------------------------------------------------------------
IMAGES_PREFIX="Mon_Pref-"

for i in `ls *.jpg`
do
        FILENAME=`basename $i`
        echo "rajout d'un préfix à" $FILENAME
        rename ’s/\.jpg//’ $IMAGES_PREFIX$FILENAME
done

On me dit :

rajout d'un préfix à a_d_0.jpg
Unrecognized character \xE2 at (eval 1) line 1.

"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#19 Le 15/05/2006, à 18:22

bertrand0

Re : [Résolu] Mon_premier Sh pour modifier des images

Isaric a écrit :

Cela ne semble pas marcher pour des noms de fichiers avec des blancs.

Tu as oublié de mettre des guillemets, ce qui fait qu'après le remplacement, les chaînes avec espace sont séparées. il faut écrire par exemple:

convert -resize 1600 $i "$IMAGES_PREFIX$FILENAME.$IMG_EXT"

Si tu veux que les blancs passent correctement en argument de convert.

EDIT: idem pour rm bien sûr

Dernière modification par bertrand0 (Le 15/05/2006, à 18:23)


Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
                                                            Buffon, Discours sur le style

Hors ligne

#20 Le 15/05/2006, à 18:38

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

Merci bertrand0

Et pour rename ?

C'est pas facile de trouver une doc en français sur sh ! sad


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#21 Le 16/05/2006, à 19:47

bertrand0

Re : [Résolu] Mon_premier Sh pour modifier des images

Isaric a écrit :

C'est pas facile de trouver une doc en français sur sh ! sad

man bash
la doc est entièrement traduite pour peu que tu aies installé le paquet manpages-fr.

Pour renommer, il faut virer les crochets dans ta commande tr, comme l'a indiqué cep dans le post #7.
Sinon, la méthode la plus efficace à mon avis pour virer les accents, c'est d'utiliser recode, par exemple avec un truc du genre:
ls | tee fichiers_old.tmp | recode -f ..flat > fichiers_new.tmp
paste fichiers_{old,new}.tmp | xargs -n2 mv -i

(le charset flat de recode est de l'ascii où tous les caractères accentués et autres sont remplacés par leur caractères de base; l'option -i de mv dans xargs empêche mv de réaliser le déplacement si le fichier destination existe déjà.)


Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
                                                            Buffon, Discours sur le style

Hors ligne

#22 Le 17/05/2006, à 08:43

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

bertrand0 a écrit :

la doc est entièrement traduite pour peu que tu aies installé le paquet manpages-fr.

je l'ai installé mais :
isaric@acer:~$ man man
me donne toujours un texte en anglais sad

bertrand0 a écrit :

Pour renommer, il faut virer les crochets dans ta commande tr, comme l'a indiqué cep dans le post #7.

Aux posts #8 #9 j'obtenais :
aéy 2.jpg     devient     a_ey_2.jpg
le "é"=>"_e"
ou
aéy 2.jpg     devient    aeey_2.jpg
"é"->"ee"

bertrand0 a écrit :

Sinon, la méthode la plus efficace à mon avis pour virer les accents, c'est d'utiliser recode, par exemple avec un truc du genre:
ls | tee fichiers_old.tmp | recode -f ..flat > fichiers_new.tmp
paste fichiers_{old,new}.tmp | xargs -n2 mv -i
(le charset flat de recode est de l'ascii où tous les caractères accentués et autres sont remplacés par leur caractères de base; l'option -i de mv dans xargs empêche mv de réaliser le déplacement si le fichier destination existe déjà.)

Là il me faut du temps pour décripter ...

isaric@acer:~$ man recode
Aucune entrée de manuel pour recode
isaric@acer:~$

"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#23 Le 17/05/2006, à 09:04

cep_

Re : [Résolu] Mon_premier Sh pour modifier des images

Isaric, tu t'embrouilles dans tes modifications multiples.
Je viens de revérifier le script que je t'ai proposé en #12.
Chez moi, avant :
:~/photos2$ ls -1
buchéron.jpg
decouàp3.jpg
découp1.jpg
déc oup2.jpg

Après :
:~/photos2$ ls -1
bucheron.jpg
decouap3.jpg
decoup1.jpg
dec_oup2.jpg

Il peut bien sûr être amélioré.

Bonne continuation.
cep

#24 Le 17/05/2006, à 10:17

bertrand0

Re : [Résolu] Mon_premier Sh pour modifier des images

Isaric a écrit :

isaric@acer:~$ man man
me donne toujours un texte en anglais sad

Et oui, toutes les pages ne sont pas traduites... mais celle de bash, qui t'intéressait est traduite, je l'ai sous les yeux en ce moment même.

Pour utiliser recode, il faut bien entendu l'installer avant:
sudo aptitude install recode


Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
                                                            Buffon, Discours sur le style

Hors ligne

#25 Le 17/05/2006, à 10:22

cep_

Re : [Résolu] Mon_premier Sh pour modifier des images

bertrand0 a écrit :

Sinon, la méthode la plus efficace à mon avis pour virer les accents, c'est d'utiliser recode, ...

Sur les noms de fichiers ?