-lsl- Posted December 20, 2004 Share Posted December 20, 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 Link to comment Share on other sites More sharing options...
Sandeman Posted December 20, 2004 Share Posted December 20, 2004 Essaies mv "$fich" "$rep/$e$frepdat.jpg" à la place de mv $fich $rep/$e$frepdat.jpg PS Link to comment Share on other sites More sharing options...
gauret Posted December 20, 2004 Share Posted December 20, 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. Link to comment Share on other sites More sharing options...
theocrite Posted December 20, 2004 Share Posted December 20, 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 Link to comment Share on other sites More sharing options...
-lsl- Posted December 20, 2004 Author Share Posted December 20, 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 ! Link to comment Share on other sites More sharing options...
Sandeman Posted December 21, 2004 Share Posted December 21, 2004 Si c'est bon passe le sujet en [Résolu] STP, en plus ça aidera lors des recherches ultérieures ... Link to comment Share on other sites More sharing options...
-rem- Posted December 21, 2004 Share Posted December 21, 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... Link to comment Share on other sites More sharing options...
-lsl- Posted December 21, 2004 Author Share Posted December 21, 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 ) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.