Comment changer une extension de fichier en bash (utilisation des substitutions en bash)
Par guillaume le lundi 15 mars 2010, 14:31 - linux - Lien permanent
Pour éviter des sed dans tous les sens, on oublie souvent les substitutions
qui couvrent un majorité des besoins pour traiter les noms de fichier :
http://djmathos2.free.fr/joomla/index.php/astuceslinux/67-changer-lextension-dun-fichier-en-shell-bash
Commentaires
Une fonctionnalité identique et sans la spécificité de bash car utilisable sous sh ou ksh consiste à utiliser la commande "basename". Ainsi:
FICHIER=fichier.mp3
echo `basename $FICHIER mp3`wav
retourne "fichier.wav".
Pour pallier les éventuels problèmes liés à la suppression par "basename" du chemin précédant le nom (néanmoins fonction principale de basename), il faut concaténer le résultat d'un appel à "dirname" sur le même nom de fichier:
FICHIER=musique/fichier.mp3
echo `dirname $FICHIER`/`basename $FICHIER mp3`wav
Plus d'informations sous Unix avec "man basename".