-lsl- Posté(e) le 20 décembre 2004 Partager Posté(e) le 20 décembre 2004 Voila j'ai fait un script shell qui regarde dans un tous les dossiers et sous repertoire d'un dossier photos , puis renomme ne masse tous les fichiers jpg qu'il trouve avec la date et le nom du repetoire qui contient les photos , puis les photos renommés par répertoires ou sous répertoires sont mis en tar.gz et (lui aussi renommé avec date te nom du repertoire!) et le tar .gz est envoyé vers directement vers un dossier photostock Mon pb c'ést que mon script ne marche que si les dossiers et sous dossiers ainsi que les jpg qui doivent être renommer ne posséde pas d'espace dans leur nom ....... si q peut m'aider je pense que cela vient du : for rep in ` find $HOME/photos/?* -type d` ;do XX done #!/bin/sh #**************** JpgPackager 0.3***************** #**************** by LSL 2004 ******************** #**************** under anjuta 1.2.2 ************* if [ ! -d $HOME/photostock ]; then mkdir $HOME/photostock fi if [ ! -d $HOME/photos ]; then mkdir $HOME/photos fi #* crée le fichier stock et photos si ils n'existent pas * echo "ce script va scanner les repertoires " find $HOME/photos/?* -type d 2> $HOME/photos/tests.txt testo= `cat $HOME/photos/tests.txt` if test "$testo" = ""; then for rep in ` find $HOME/photos/?* -type d`;do echo "il y a un repertoire:" $rep dat=`date +%d:%b:%y | sed -e "s/[:]//g"` repdat=$rep$dat e=1 frepdat=`echo $repdat | sed -e "s/[/]/-/g" | sed -e "s/-//1"` ls $rep/*.jpg 2> $rep/test.txt v=`cat $rep/test.txt` if test "$v" != ""; then echo "il n y a pas de jpg dans le dossier" else echo "il y a des jpg dans le dossier " for fich in $rep/*.jpg;do if [ -f $fich ]; then mv $fich $rep/$e$frepdat.jpg e=`expr $e + 1` #*****les fichier trouvés jpg sont renommés en masse******* else echo "on ne renomera pas les dossiers *.jpg" fi done echo "les jpg vont être archivés et compressés" tar -czf $HOME/photostock/$frepdat.tar.gz $rep/*.jpg fi rm -f $rep/test.txt done else echo "il n'y a pas de répertoire dans le dossier photos" fi rm -f $HOME/photos/tests.txt Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sandeman Posté(e) le 20 décembre 2004 Partager Posté(e) le 20 décembre 2004 Essaies mv "$fich" "$rep/$e$frepdat.jpg" à la place de mv $fich $rep/$e$frepdat.jpg PS Lien vers le commentaire Partager sur d’autres sites More sharing options...
gauret Posté(e) le 20 décembre 2004 Partager Posté(e) le 20 décembre 2004 Il doit aussi y avoir un problème dans le for effectivement, parce que bash va itérer sur les différentes parties du nom composé. Pour cela, ajoute un petit IFS=$'\n' avant et ça devrait aller mieux. Man bash pour savoir à quoi ça correspond. Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 20 décembre 2004 Partager Posté(e) le 20 décembre 2004 dat=`date +%d:%b:%y | sed -e "s/[:]//g"` ou plutôt dat=`date +%d%b%y` Là : frepdat=`echo $repdat | sed -e "s/[/]/-/g" | sed -e "s/-//1"` je ne vois pas pourquoi tu ne fais pas directement frepdat=`echo $repdat | sed -e "s/[/]//g" Je sais que ça ne répond pas à la question, mais normalement Sandeman et Gauret l'ont déjà fait Lien vers le commentaire Partager sur d’autres sites More sharing options...
-lsl- Posté(e) le 20 décembre 2004 Auteur Partager Posté(e) le 20 décembre 2004 merciiii! tout le monde vous etes des lords of the code ! gauret je vais essayer rapidement ton IFS ca m'as l'air d'etre la soluce.... vraiment merciiiiiiiiiiiiiiiiiii ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sandeman Posté(e) le 21 décembre 2004 Partager Posté(e) le 21 décembre 2004 Si c'est bon passe le sujet en [Résolu] STP, en plus ça aidera lors des recherches ultérieures ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
-rem- Posté(e) le 21 décembre 2004 Partager Posté(e) le 21 décembre 2004 C'est de la prog ca...mais bon, c'est vrai que les personnes les plus qualifiées pour y répondre sont sur le forums linux ( on répond à tous nous les pinguoins ). Bon, j'envoie ca quand meme dans Prog... Lien vers le commentaire Partager sur d’autres sites More sharing options...
-lsl- Posté(e) le 21 décembre 2004 Auteur Partager Posté(e) le 21 décembre 2004 -rem- cela ne fait que 3 mois que je suis sous linux et des que j'ai commencé j'ai appris du shell sur des cours dispo sur le web ... et c'est mon premier script que j'ai en 3 jours plus ou moins ( 2 h par jour dessus en moyenne !) .... il est vrai que comme c'est un premier script le style est assez nul .... Mais quand je vois que j'arrive deja à faire un script comme ca !!! avec un niveau qui frise les paquerettes !! c'est ca le linux powaaaa ! soyez indulgent ...mais promis je vais renvoyé mon prog amélioré d'ici peu ... et vous me direz ce qu'il en ai ! (au fait je fais une maitrise de bio po d'info ! ce qui explique le style de prog bétail ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.