Extraction partie d'une chaine de caracteres

Fermé
medhtn - 26 sept. 2008 à 15:19
 medhtn - 29 sept. 2008 à 12:32
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 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
26 sept. 2008 à 15:36
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
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