pas de fourches:
ls | perl -lne '$suf=substr($_,6); rename $_, "XXXXX-$suf"'
Lorsque vous utilisez une boucle shell, les mv
fourches une fois par fichier. La rename
commande de Perl ne fonctionne pas.
(La commande renommer de Perl a certaines restrictions, mais dans ce cas spécifique, ces restrictions ne s'appliquent pas.)
En ce qui concerne la rename
commande ci-dessus, oui, cela fonctionne, mais vous avez alors toute cette confusion entre deux types de renommage différents, etc. Si vous avez le bon, parfait, mais sinon, cela fonctionne aussi.
Si vous n'avez pas la commande perl-rename et ne pouvez pas l'installer, vous pouvez simplement faire ceci:
ls | perl -lne '$old=$_; s/(\w+)/XXXXX/; rename $old, $_'
Comme vous pouvez le voir, cela utilise la même substitution que celle indiquée dans la réponse du haut. Bien sûr, le perl-rename a d'autres cloches et sifflets (la première réponse mentionnée, -n
déjà, puis il y a -0
, -f
et ainsi de suite), et plus vous en avez besoin, plus vous devez installer cela au lieu de lancer le vôtre de cette manière .
rename
. Je suppose que c'est Larry Wallrename
, durename
paquet dans Debian et dérivé (et IIRCprename
sur les systèmes de persuasion RedHat). Un outil très utile.