J'apprends à utiliser l'utilitaire Unix en ligne de commande. rename
(voir, par exemple, https://www.tecmint.com/rename-multiple-files-in-linux/ ).
Le manuel pour rename
dit que vous pouvez combiner plusieurs règles de renommage (remarquez, il s'agit d'un synopsis de l'utilisation où j'enlève d'autres arguments pour plus de clarté) :
rename [ -e|-E perlexpr]*|perlexpr [ files ]
J'essaie de le faire sur l'exemple suivant. J'ai un répertoire avec des fichiers :
$ ls
01.php 02.php 03.php
J'applique deux transformations en utilisant une rename
invocation :
rename -n -v -e "s/\.php$/\.htm/" "y/a-z/A-Z/" *
Le comportement attendu est que je vais avoir :
$ ls
01.HTM 02.HTM 03.HTM
Cependant, la sortie de rename
est
rename(01.php, 01.htm)
rename(02.php, 02.htm)
rename(03.php, 03.htm)
c'est-à-dire que la deuxième transformation (caractères minuscules vers majuscules) n'est pas appliquée.
Comment combiner plusieurs expressions ensemble ?