extraction de nombres dans une chaine

extraction de nombres dans une chaine - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 08-03-2006 à 18:23:22    

Supposons une listye de fihiers comme celle-ci:
$HOME/LinkDATA/ImagesVR/IsoVol/ct/p0V.mhd
$HOME/LinkDATA/ImagesVR/IsoVol/ct/p1V.mhd
...
$HOME/LinkDATA/ImagesVR/IsoVol/ct/p10V.mhd
...
$HOME/LinkDATA/ImagesVR/IsoVol/ct/p15V.mhd
 
Comment puis-je récupérer la valeur 0 de $HOME/LinkDATA/ImagesVR/IsoVol/ct/p0V.mhd (respectivement 1,...,10...,15) dans une variable?
 
j'ai essayé avec cut mais comme on a soit 1 soit 2 caractère cela pose un problème.
 
y'a t'il moyen de filtrer une chaîne de caractère, filtre qui ressortirait uniqument les caractères numériques (ce qui conviendrait ici)
 
une idée..? merci d'avance


Message édité par sutanpepper le 08-03-2006 à 18:24:57
Reply

Marsh Posté le 08-03-2006 à 18:23:22   

Reply

Marsh Posté le 08-03-2006 à 19:11:35    

Code :
  1. f=p15V.mhd
  2.  
  3. # tu peux prendre une approche "je connais la forme du nom du fichier, je ne garde que ce qui m'interesse"
  4. $ echo $f | sed 's/p\(.*\)V.mhd/\1/'
  5. 15
  6.  
  7. # tu peux aussi te dire "la forme du nom du fichier n'est pas toujours la même, mais il n'y a qu'un seul groupe de chiffres"
  8. $ echo $f | sed 's/[^0-9]*\([0-9]*\).*/\1/'
  9. 15
  10.  
  11. # ou alors, tu peux décider d'enlever simplement les lettres et les points du nom du fichier
  12. $ echo ${f//[[:alpha:].]}
  13. 15

Reply

Marsh Posté le 09-03-2006 à 10:00:11    

Bon ben merci...
 
(un jour il faudra que je me fasse expliquer cette commande sed et les expressions régulières)

Reply

Sujets relatifs:

Leave a Replay

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