[SHELL] Récuperer les 3 derniers caracteres
Résolu
Vincent
-
jérome -
jérome -
Bonjour, je souhaite récupérer l'extension d'un nom de fichier en SHELL.
J'ai donc fait
Cependant, parfois j'ai des fichiers qui s'appellent "blabla.truc.jpeg" donc ca fausse tout et je me retrouve avec une extension qui s'appelle truc
Est il possible de faire l'inverse, c'est à dire de partir de la fin de la chaine de caractere et recuperer ce qui est à droite du delimiteur "." ?
merci d'avance
Cdlt
Vincent
J'ai donc fait
ext=`echo $nom |cut -f2 -d.`
Cependant, parfois j'ai des fichiers qui s'appellent "blabla.truc.jpeg" donc ca fausse tout et je me retrouve avec une extension qui s'appelle truc
Est il possible de faire l'inverse, c'est à dire de partir de la fin de la chaine de caractere et recuperer ce qui est à droite du delimiteur "." ?
merci d'avance
Cdlt
Vincent
A voir également:
- Quels sont les deux derniers caractères de votre nom
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Nombre de jours entre deux dates excel - Guide
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
3 réponses
Salut,
jp@MDK:~/tmpfs ssh$ var="mon.pro.txt" jp@MDK:~/tmpfs ssh$ echo ${var##*.} txt;-))
Vincent
merciiii ;)
Re-
Ça c'était pour le cas ou les extensions ont plus de 3 caractères (jpeg), mais si tes extensions sont formatées sur 3 caractères, tu peux aussi faire comme suit :
Ça c'était pour le cas ou les extensions ont plus de 3 caractères (jpeg), mais si tes extensions sont formatées sur 3 caractères, tu peux aussi faire comme suit :
[jp@MDK tmpfs]$ var="mon.pro.txt" [jp@MDK tmpfs]$ echo ${var: -3} txt [jp@MDK tmpfs]$;-))
Bonjour,
Je rencontre actuellement le même besoin.
J'ai essayé cette commande en bash, elle fonctionne à merveille, mais le problème, c'est que mes scripts doivent être en ksh.
Existerait-il le même type de solution en ksh ??
Merci beaucoup pour votre aide,
Cdlt,
Mathieu
Je rencontre actuellement le même besoin.
J'ai essayé cette commande en bash, elle fonctionne à merveille, mais le problème, c'est que mes scripts doivent être en ksh.
bash-3.00$ ksh $ var=15225452211155912345 $ echo ${var: -5} ksh: ${var: -5}: bad substitution
Existerait-il le même type de solution en ksh ??
Merci beaucoup pour votre aide,
Cdlt,
Mathieu
principe valable pour tous les shells et toutes les longueurs de suffixes (mais syntaxe de déclaration de variable à adapter par exemple en csh) :
# extrait le suffixe d'un nom de fichier : aa.bb.cc -> .cc
suffixe() {
nom=`basename "$1"` &&
nom=`expr match "$nom" ".*\(\..*\)$"` &&
echo $nom
}
# extrait les suffixes d'un nom de fichier : aa.bb.cc -> .bb.cc
suffixes() {
nom=`basename "$1"` &&
nom=`expr match "$nom" "[^.]*\(\..*\)$"` &&
echo $nom
}
suff=$(suffixe monFichier.sonExtension)
# extrait le suffixe d'un nom de fichier : aa.bb.cc -> .cc
suffixe() {
nom=`basename "$1"` &&
nom=`expr match "$nom" ".*\(\..*\)$"` &&
echo $nom
}
# extrait les suffixes d'un nom de fichier : aa.bb.cc -> .bb.cc
suffixes() {
nom=`basename "$1"` &&
nom=`expr match "$nom" "[^.]*\(\..*\)$"` &&
echo $nom
}
suff=$(suffixe monFichier.sonExtension)