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
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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 , 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 : Sélectionner tout - Visualiser dans une fenêtre à part un.deux.trois
Avec zsh, il suffit d'ajouter :r après la variable.
Pour renommer tous les fichiers et enlever leur extension :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $fichier:r
(zsh seulement, après un "autoload zmv")
Code : Sélectionner tout - Visualiser dans une fenêtre à part zmv '(*)' '$1:r'
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager