[comprendre] Substitution d'extension fichier

Résolu/Fermé
raspoute Messages postés 827 Date d'inscription lundi 1 mai 2006 Statut Contributeur Dernière intervention 13 septembre 2013 - 22 avril 2007 à 11:29
raspoute Messages postés 827 Date d'inscription lundi 1 mai 2006 Statut Contributeur Dernière intervention 13 septembre 2013 - 22 avril 2007 à 11:58
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:

 [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:

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
22 avril 2007 à 11:48
Salut,

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"'
;-))
0
raspoute Messages postés 827 Date d'inscription lundi 1 mai 2006 Statut Contributeur Dernière intervention 13 septembre 2013 74
22 avril 2007 à 11:58
Décidément, j'ai encore beaucoup à apprendre...

Un trèsgrosMERCI en tout cas
:)
0