[SHELL] Récuperer les 3 derniers caracteres
Résolu/Fermé
A voir également:
- Quels sont les deux derniers caractères de votre nom
- Caractères ascii - Guide
- Caractères spéciaux clavier azerty - Guide
- Supprimer une conversation messenger pour les deux personnes ✓ - Forum Facebook
- Trouver une adresse avec un nom de famille gratuit ✓ - Forum Mobile
- Quels sont les 8 caractères d'un mot de passe ? - Guide
3 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 897
25 avril 2007 à 17:47
25 avril 2007 à 17:47
Salut,
jp@MDK:~/tmpfs ssh$ var="mon.pro.txt" jp@MDK:~/tmpfs ssh$ echo ${var##*.} txt;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
25 avril 2007 à 19:00
25 avril 2007 à 19:00
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]$;-))
gorkimat
Messages postés
70
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
1 mars 2012
9
28 févr. 2008 à 13:37
28 févr. 2008 à 13:37
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
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
>
gorkimat
Messages postés
70
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
1 mars 2012
28 févr. 2008 à 13:51
28 févr. 2008 à 13:51
Salut,
Tu peux toujours essayer comme ça :
Tu peux toujours essayer comme ça :
$ var=15225452211155912345 $ expr "$var" : ".*\(.....\)" 12345;-))
gorkimat
Messages postés
70
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
1 mars 2012
9
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
28 févr. 2008 à 13:55
28 févr. 2008 à 13:55
Bonjour Jipicy,
Merci beaucoup, cela marche nickel.
Mat
Merci beaucoup, cela marche nickel.
Mat
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)
25 avril 2007 à 18:19