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 %%
A voir également:

2 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
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
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