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.