Renommer un grand nombre de fichiers sous Linux selon un modèle
Je suis en train de faire trois choses avec la commande mv, mais pas sûr que c'est possible? Probablement besoin d'un script. vous ne savez pas comment l'écrire. Tous les fichiers sont dans le même dossier.
1) les Fichiers se terminant avec v9.zip devrait être, tout simplement .zip (la v9 supprimé)
2) Fichiers contenant _ devrait être -
3 Fichiers) avec une Majuscule à côté d'une lettre minuscule (ou minuscule à côté d'une Majuscule) doit avoir un espace entre eux. Donc MoveOverNow serait Déplacer Plus Maintenant et ruNaway serait enfui
[A-Z][a-z] ou [a-z][A-Z] devient [A-Z] [a-z] et [a-z] [A-Z]
source d'informationauteur Josh Bond
Vous devez vous connecter pour publier un commentaire.
Ma solution préférée est mon propre renommer script. L'exemple le plus simple qui correspond à vos problèmes sont les suivants:
Bien que je déteste vraiment espaces dans mes noms de fichiers, en particulier verticale de l'espace:
et cetera. Il est basé sur un script de L'Larry Wall, mais avec des options, comme dans:
Comme vous le voyez, il peut ne pas modifier les noms de fichiers, mais où les liens symboliques pointent à l'aide du même modèle. Vous n'avez pas à utiliser un
s///
modèle, bien que souvent on ne.La d'autres outils dans ce répertoire sont pour la plupart de l'Unicode des travaux, de qui il y a quelques super-utiles.
Il y a un
rename
de commande fourni avec la plupart basées sur Debian/Ubuntu distros qui a été écrit par Robin Barker basé sur Larry Wall code original de autour de 1998(!).Voici un extrait de la documentation:
Il utilise perl de sorte que vous pouvez utiliser perl expressions correspondent à ce modèle, en fait, je crois qu'il fonctionne un peu comme tchrist scripts.
Un autre vraiment utile ensemble d'outils permettant de renommer des fichiers en vrac est le renameutils collection par Oskar Liljeblad. Le code source est hébergé par la Fondation pour le Logiciel Libre. En outre de nombreuses distributions (notamment basées sur Debian/Ubuntu distributions) ont un
renameutils
paquet avec ces outils.Sur l'un de ces distributions, vous pouvez l'installer avec:
Puis de renommer des fichiers il suffit d'exécuter cette commande:
Il ouvrira un éditeur de texte avec la liste des fichiers, et vous pouvez les manipuler avec votre éditeur de la recherche et de la fonction remplacer.
Je n'ai pas testé, donc je l'ai mis
echo
à l'avant de l'commandes de sorte que vous pouvez les essayer avant de retirer l'écho de courir pour de vrai.1)
2)
Comme pour votre troisième problème, je suis sûr qu'il peut être fait aussi, mais peut-être une approche plus sophistiquée que les premières shell one-liners aidera, comme @tchrist mentionné.
Les réponses ci-dessus s'appliquent à Debian, Ubuntu, etc
Pour RHEL et co: renommer from_pattern to_pattern fichiers
Je pense que le lien est cassé et je n'arrivais pas à trouver la page dans le webarchive de le renommer le script dans tchrist post, voici donc un autre en Perl.