Bonjour, existe-t-il un équivalent à 'basename' pour récupérer les noms de fichiers sans le l'extension. Je cherche à supprimer l'extension d'une liste de fichiers de type différent. Sinon comment faire ??
Merci ;)
Version imprimable
Bonjour, existe-t-il un équivalent à 'basename' pour récupérer les noms de fichiers sans le l'extension. Je cherche à supprimer l'extension d'une liste de fichiers de type différent. Sinon comment faire ??
Merci ;)
Pourquoi basename ne conviendrait-il pas?
euuuh... il faut demander à l'auteur de 'basename'
je cherche une commande équivalente à :
basename $fichier .*
(celle-ci n'existe pas)
basename convient parfaitement bien, mais tu devras l'intégrer dans une boucle pour traiter tous les fichiers:
Remplace echo par un mv si tu es satisfait du résultat.Code:
1
2
3
4
5
6 #! /bin/sh for fichier in /chemin/vers/ton/repertoire/* do echo $(basename $fichier .${fichier##*.}) done
Je vais répondre seul, merci google, je le fais bosser alors que c'est sont anniversaire :s
${fichier%.*}"
Si jamais quelqu'un a une autre solution je suis preneur
Oups :oops: , j'étais en train de répondre quand t'as posté
Merci ripat ;)
Attention avec l'opérateur de substitution %.* tu supprimes la plus plus petite partie correspondante. Tu risques d'avoir des problèmes avec des fichiers comme:
Code:un.deux.trois
Avec zsh, il suffit d'ajouter :r après la variable.
Pour renommer tous les fichiers et enlever leur extension :Code:$fichier:r
(zsh seulement, après un "autoload zmv")Code:zmv '(*)' '$1:r'