conversion string to int

conversion string to int - Shell/Batch - Programmation

Marsh Posté le 14-03-2010 à 23:20:51    

Bonjour tout le monde,
 
j'ai un dossier plein d'images, j'ai voulu supprimer les derniers, étant donné le code suivant :
 

Code :
  1. #!/bin/bash
  2. echo script started
  3. for i in `seq 1078201 1090000`;
  4. do
  5. if [ -f $i.jpg ]
  6. then
  7. rm $i.jpg -f
  8. echo "$i deleted"
  9. fi
  10. done


 
Si j'affiche i avant la condition j'ai des résultats de ce type :
1.08996e+06.jpg
1.08996e+06.jpg
1.08996e+06.jpg
1.08996e+06.jpg
1.08996e+06.jpg
1.08996e+06.jpg
1.08996e+06.jpg
1.08996e+06.jpg
1.08997e+06.jpg
 
et donc le nom de fichier n'est pas correct, j'ai pensé à convertir la variable en string après en entier pour qu'elle s'incrémente, mais je ne sais pas comment m'y prendre,
 
Quelqu'un a une idée ?
Merci d'avance,  [:nul_olive]

Reply

Marsh Posté le 14-03-2010 à 23:20:51   

Reply

Marsh Posté le 15-03-2010 à 11:47:52    

bizarre, chez moi ca ne se met pas en notation scientifique...

Reply

Marsh Posté le 23-03-2010 à 10:38:55    

Bonjour,  
 
T'as tenté une petite feinte toute simple du genre rajouter des guillemets dans le nom itératif du fichier au niveau de la boucle :
 

Code :
  1. #!/bin/bash
  2. echo script started
  3. for i in `seq 1078201 1090000`;
  4. do
  5. if [ -f "./$i.jpg" ]
  6. then
  7. rm "./$i.jpg" -f
  8. echo "$i deleted"
  9. fi
  10. done


 
Des fois le fait de ne pas entourer la variable de guillemets permet à l'OS de faire joujou avec et d'interpréter des choses bizarres !


---------------
En programmation, quand t'as un problème et qu'il n'y a que deux solutions valides, seule la troisième fonctionne !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed