[Shell] Récupérer extensions

Résolu
JOBiJOBa2 Messages postés 93 Statut Membre -  
 dzincou -
Bonjour, étant débutant je me demande comment récupérer que l'extension(ex : ".exe") d'un nom de fichier.
Ma base de travail est un fichier texte contenant tous mes noms de fichiers :

Exemple :

Toto.exe
tata.fmb
titi.gz
tonton


Etant donnée que mes extension peuvent comporter trois, deux ou zéro caractères le code suivant ne me donne pas ce que j'attend :
expr "$line" : ".*\(....\)"


Résultat:
.exe
.fmb
i.gz #( pas bon )
nton #( pas bon )


Donc y a t-il des fonctions prédéfinies pour couper les chaines après un caractères désigné, ou une autre solution?

Merci d'avance de vos réponse
A voir également:

2 réponses

kilian Messages postés 8854 Statut Modérateur 1 526
 
Salut,

Essaie avec ça:
grep -Eo "\..+$"
0
JOBiJOBa2 Messages postés 93 Statut Membre 5
 
Merci à tous le monde ça marche impecable
0
kilian Messages postés 8854 Statut Modérateur 1 526 > JOBiJOBa2 Messages postés 93 Statut Membre
 
Hé! C'est à mon message qu'il répond!

Gnaha!
0
JOBiJOBa2 Messages postés 93 Statut Membre 5 > kilian Messages postés 8854 Statut Modérateur
 
Ca marche pour les deux solutions ^^
0
jipicy Messages postés 41342 Statut Modérateur 4 896 > kilian Messages postés 8854 Statut Modérateur
 
Ben il répond chronologiquement, pas la peine d'en faire tout un fromage, pfffffffffffffffffff ces d'jeuns ;-DD
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570 > kilian Messages postés 8854 Statut Modérateur
 
Hé! C'est à mon message qu'il répond!
C'est normal, puisque c'est un coup monté grâce au MP ;-DDDDDD
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

En gardant ton expression, mais en changeant la syntaxe :
expr "$line" : ".*\(\..*\)"
;-))
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Ah non c'est pas juste, je t'ai devancé d'une seconde :'-(
0
jipicy Messages postés 41342 Statut Modérateur 4 896 > kilian Messages postés 8854 Statut Modérateur
 
Priorité aux vieux et pis c'est tout ;-DD
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570 > kilian Messages postés 8854 Statut Modérateur
 
je t'ai devancé d'une seconde
c'est enorme ;-DDDDDDDDD
0
dzincou
 
Bonjour,

Merci pour votre réponse concernant la récupération de l'extension d'un fichier à l'aide d'un script shell.

Je début en la matière et en cherchant à résoudre mon problème je n'ai pas trouvé mieux que votre réponse. Cependant, il me manque un bout par rapport à ce que je veux faire.

Dans mon cas, je parcours une arborescence et pour chaque fichier je voudrais tester l'extension pour lancer tel programme si c'est un .txt, tel autre programme si c'est un .pdf etc ...

Votre petit bout de code est parfait pour me donner l'extension de tous les fichiers, mais je n'arrive qu'a afficher le resultat et non à "l'exploiter".

Est ce que cela est possible ? je voudrais par exemple mettre cette extension dans une variable et faire une comparaison avec ".txt" ou ".pdf" (ce que je ne sais pas faire et ne trouve pas comment faire).


Merci d'avance,

Eric
0
jipicy Messages postés 41342 Statut Modérateur 4 896 > dzincou
 
Salut,

Tu récupères ton extension dans une variable ( ext=$(ta_syntaxe_pour_récupérer_extension) ) puis tu fais un :
case "$ext" in
.txt)     ta commande pout txt
;;
.pdf)     ta commande pour pdf
;;
.doc)     ta commande pour doc
;;
etc.
;;
esac
;-))
0