Page 1 sur 1

[bash] Extraction nom de fichier (=basename)

Posté : 27 juil. 2010, 12:03
par jojolapine
Bonjour à tous,

je suis en train de me développer un petit script bash afin de faciliter l'utilisation de gettext, il me sert donc à extraire les traductions puis à les compiler...
Bref là n'est pas le sujet, si jamais j'arrive à ce que ce soit bien utilisable, je partagerais ;)

Donc en fait je cherche simplement à récupérer le nom de base d'un fichier passer en paramètre... pour l'instant, j'utilise ceci:

Code : Tout sélectionner

# Récupération du nom de fichier sans l'extension FILE_NAME=$(echo "$3" | cut -f1 -d '.')
Mais ça ne fonctionne que si l'on passe ce genre de chose: file.ext

J'aimerais simplement pouvoir extraire de path/to/file.ext le file...
Et je suis vraiment une bille en prog bash...

Auriez-vous quelque chose sous la main pour moi?
Merci d'avance!

Re: [bash] Extraction nom de fichier (=basename)

Posté : 27 juil. 2010, 12:29
par ouckileou
Il y a la fonction "basename" en bash.

Exemple que j'avais trouvé sur internet:
#!/bin/bash
fullfilename=$(basename $1)
extension=${fullfilename##*.}
filename=${fullfilename%.*}

echo "fullfilename=$fullfilename"
echo "extension=$extension"
echo "filename=$filename"
./file_name.sh /path/to/file/toto.txt.truc
fullfilename=toto.txt.truc
extension=truc
filename=toto.txt

Re: [bash] Extraction nom de fichier (=basename)

Posté : 27 juil. 2010, 15:17
par jojolapine
Merci beaucoup ça fonctionne au poil! ;)

j'ai partagé ici mon petit script: vos-contributions/utilitaire-shell-pour ... 54503.html