Extraction partie d'une chaine de caracteres

medhtn -  
 medhtn -
Bonjour,

Je suis debutant en shell (sh).

J'ai des chaines de caracteres de type :
cas1) string= fblablailegztarblabla.0010.tar.gz
cas2) string= fblablailegztarblabla.0010.tar

J'ai besoin d'un script qui marche pour les deux cas et qui peux m'extraire dans deux var:
var1:
root-name <---- fblablailegztarblabla.0010 dans les deux cas1) et cas2)
var2:
ext <-----tar.gz dans le cas1)
ext <---- tar dans le cas2)

Merci d'avance

PS. Je precise que je parle bien de sh car le problème ne se pose pas en bash grâce à % et %%
Configuration: sun solaris 5.10

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Une solution avec "sed" :
    [tmp]$ var1="fblablailegztarblabla.0010.tar.gz"
    [tmp]$ var2="fblablailegztarblabla.0010.tar"
    
    [tmp]$ echo -e "$var1\n$var2"
    fblablailegztarblabla.0010.tar.gz
    fblablailegztarblabla.0010.tar
    
    [tmp]$ echo -e "$var1 \n$var2" |sed 's/\.tar.*//'
    fblablailegztarblabla.0010
    fblablailegztarblabla.0010
    
    [tmp]$ echo -e "$var1 \n$var2" |sed 's/.*\(tar.*\)/\1/'
    tar.gz
    tar
    
    [tmp]$ 
    ;-))
    1
  2. medhtn
     
    Bonjour,
    Merci beaucoup jipicy,
    c'est parfait ton sed!

    PS. G beaucoup rigoler pour le coup " man woman " surtout quand tu t'imagine en train de l'expliquer à une femme ne connaissantque windows!
    0