Comment renommer des fichiers dans un répertoire tel que le fichier suivant :PMC21375.pdf.txt
, je dois être renommé en 21375.txt
. c'est-à-dire que je dois supprimer à la fois PMC
et pdf
de chaque nom de fichier.
Réponse acceptée :
Avec le rename
de perl :
rename 's/(PMC|.pdf)//g' *pdf.txt
Démo :
$ ls *txt
PMC21375.pdf.txt
$ rename -n 's/(PMC|.pdf)//g' *txt
PMC21375.pdf.txt -> 21375.txt
depuis le shell
rapide. C'est très utile, vous pouvez mettre du code perl comme je le fais dans une substitution.
Vous pouvez supprimer le -n
(commutateur de mode de marche à vide) lorsque vos tests deviennent valides.
Il existe d'autres outils portant le même nom qui peuvent ou non être capables de le faire, donc soyez prudent.
Si vous exécutez la commande suivante (linux
)
$ file $(readlink -f $(type -p rename))
et vous avez un résultat comme
.../rename: Perl script, ASCII text executable
alors cela semble être le bon outil =)
Sinon, pour en faire la valeur par défaut (généralement déjà le cas) sur Debian
et dérivé comme Ubuntu
:
$ sudo update-alternatives --set rename /path/to/rename
(remplacez /path/to/rename
au chemin de votre perl's rename
commande.
Enfin, cet outil a été écrit à l'origine par Larry Wall, le père de Perl.