[comprendre] Substitution d'extension fichier
Résolu
raspoute
Messages postés
875
Statut
Contributeur
-
raspoute Messages postés 875 Statut Contributeur -
raspoute Messages postés 875 Statut Contributeur -
Salut,
j'étais à la recherche d'un moyen de renommer une série de fichiers, et j'ai trouvé ceci: renommer fichiers avec extension
Ca correspond exactement à ce que je cherchais. Mais voilà, j'aime bien comprendre les choses, et là j'ai un peu de mal à comprendre le fonctionnement de la ligne de commande:
Connaissez vous un tuto qui explique comment il se fait que: mv $i ${i/txt/ps} remplace txt par ps ?
j'étais à la recherche d'un moyen de renommer une série de fichiers, et j'ai trouvé ceci: renommer fichiers avec extension
Ca correspond exactement à ce que je cherchais. Mais voilà, j'aime bien comprendre les choses, et là j'ai un peu de mal à comprendre le fonctionnement de la ligne de commande:
[jp@MDK tmpfs]$ for i in $(ls fich*) ; do mv $i ${i/txt/ps}; done
Connaissez vous un tuto qui explique comment il se fait que: mv $i ${i/txt/ps} remplace txt par ps ?
A voir également:
- [comprendre] Substitution d'extension fichier
- Fichier bin - Guide
- Changer extension fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
2 réponses
Salut,
man bash et plus précisément le chapitre sur les "Expansions" :
man bash et plus précisément le chapitre sur les "Expansions" :
${paramètre/motif/chaîne}
${paramètre//motif/chaîne}
Le motif est développé comme dans le traitement des noms de
fichiers. Le paramètre est développé et la plus longue portion
correspondant au motif est remplacée par la chaîneg. Dans la
première forme, seule la première correspondance est remplacée,
dans la seconde toutes les portions correspondant au motif sont
remplacées par la chaîne. Si le motif commence par #, il doit
correspondre au début de la valeur développée du paramètre. Si
le motif commence par %, il doit correspondre à la fin du
développement du paramètre. Si la chaîne est nulle, les por-
tions correspondant au motif sont supprimées et le / après le
motif peut être omis. Si le paramètre est @ ou *, l'opération
de substitution est appliquée à chacun des paramètres position-
nels successivement, et le résultat est la liste finale. Si le
paramètre est une variable tableau indexée par @ ou *,
l'opération de substitution s'applique à chaque membre du
tableau successivement, et le résultat est la liste finale.
man bash -P 'less -p "^EXPANSION"';-))