Distinguer l'extension du nom d'un fichier
Résolu
tbeghain
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
-
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
- Fichier bin - Guide
- Changer extension fichier - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - 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
58
Date d'inscription
Statut
Membre
Dernière intervention
3
Merci beaucoup, ça marche impec
jipicy
Messages postés
40842
Date d'inscription
Statut
Modérateur
Dernière intervention
4 896
>
tbeghain
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
De rien, c'est fait pour ;-))
lu
Je ne fais pas de script shell.. mais je dirais que tu peux couper la variable en 2 par rapport au . (point)
et ainsi avoir le nom et l'extension séparé.
Je ne fais pas de script shell.. mais je dirais que tu peux couper la variable en 2 par rapport au . (point)
et ainsi avoir le nom et l'extension séparé.
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
bonjour,
ni l'un ni l'autre, voici la sortie :
mail
gz
Merci
ni l'un ni l'autre, voici la sortie :
gz
Merci
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$