Distinguer l'extension du nom d'un fichier
Résolu
tbeghain
Messages postés
63
Statut
Membre
-
asevere Messages postés 13095 Date d'inscription Statut Webmaster Dernière intervention -
asevere Messages postés 13095 Date d'inscription Statut Webmaster Dernière intervention -
Bonjour,
Sur AIX, dans un script shell, j'ai une variable qui contient un nom de fichier (exemple monfic.txt). Comment, à partir de cette variable, puis-je obtenir deux variables, une contenant le nom (monfic), et l'autre l'extension (txt) ?
Merci pour vos réponses
Sur AIX, dans un script shell, j'ai une variable qui contient un nom de fichier (exemple monfic.txt). Comment, à partir de cette variable, puis-je obtenir deux variables, une contenant le nom (monfic), et l'autre l'extension (txt) ?
Merci pour vos réponses
A voir également:
- Distinguer l'extension du nom d'un fichier
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Changer extension fichier - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
5 réponses
Salut,
[jp@MDK tmpfs]$ var="commentcamarche.net"
[jp@MDK tmpfs]$ echo ${var%.*}
commentcamarche
[jp@MDK tmpfs]$ echo ${var#*.}
net
[jp@MDK tmpfs]$;-))
tbeghain
Messages postés
63
Statut
Membre
3
Merci beaucoup, ça marche impec
jipicy
Messages postés
41342
Statut
Modérateur
4 898
>
tbeghain
Messages postés
63
Statut
Membre
De rien, c'est fait pour ;-))
Bonjour,
Je rebondi sur ce post, car mes noms de fichier comporte plusieurs points, comment préciser de prendre en compte le dernier ?
exemple de nom :
mail.log.0.10.gz
l'autre option serait de récupérer le nom du fichier une fois décompressé par gunzip ... mais je n'ai pas trouvé de moyen ...
Merci d'avance.
Stéphane
Je rebondi sur ce post, car mes noms de fichier comporte plusieurs points, comment préciser de prendre en compte le dernier ?
exemple de nom :
mail.log.0.10.gz
l'autre option serait de récupérer le nom du fichier une fois décompressé par gunzip ... mais je n'ai pas trouvé de moyen ...
Merci d'avance.
Stéphane
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Tu veux obtenir quoi au final ???
Tu veux obtenir quoi au final ???
[root@servertest trash]# echo ${var}
mail.log.0.10.gz
[root@servertest trash]# echo ${var%.*}
mail.log.0.10
[root@servertest trash]# echo ${var%%.*}
mail
[root@servertest trash]# echo ${var#*.}
log.0.10.gz
[root@servertest trash]# echo ${var##*.}
gz
[root@servertest trash]#;-))
fabuleux ces expressions régulières ... faudrais vraiment que j'arrive à accrocher un jour ... même après avoir passé des jours sur AWK puis en perl, je n'arrive toujours pas à prendre le truc ...
j'aurais dû essayer la première solution en dur, je me suis directement dis, oui donc % c'est le joker jusqu'a premier point et ça renvoi le reste .... or il n'en n'est rien ... utilise ta tête et essais stéphane ....
Merci encore à tout les 2.
Stéphane
j'aurais dû essayer la première solution en dur, je me suis directement dis, oui donc % c'est le joker jusqu'a premier point et ça renvoi le reste .... or il n'en n'est rien ... utilise ta tête et essais stéphane ....
Merci encore à tout les 2.
Stéphane
Là, le plus rapide semble être l'uitilisation de SED:
ex: aficher la variable a l'envers, couper le champ 1 le renverser et tu as l'extension
substituer l'extension trouvée en 1 par rien dans la variable.
c2d:~ adrien$ echo $VAR |sed 's/\(.*\)\.\(.*\)/file: \1 ext: \2/' file: mail.log.0.10 ext: gzIl y a d'autres solutions mais qui vont nécéssiter beaucoup de commandes.
ex: aficher la variable a l'envers, couper le champ 1 le renverser et tu as l'extension
substituer l'extension trouvée en 1 par rien dans la variable.
c2d:~ adrien$ ext=$(echo $VAR|rev |cut -f1 -d'.' | rev)
c2d:~ adrien$ echo $ext
gz
c2d:~ adrien$ file=${VAR/.$ext/}
c2d:~ adrien$ echo $file
mail.log.0.10
c2d:~ adrien$