Renommer plusieurs fichiers en ajoutant une chaîne au début


21

Pour environ 200 fichiers dans un répertoire, je voudrais ajouter la chaîne 1_au début de tous les noms de fichiers.

Les noms de fichiers sont, par exemple, DATASET_X_Y_Zet le résultat devrait être 1_DATASET_X_Y_Z.

Je ne connais rien aux scripts Shell, mais il y a peut-être une doublure pour le terminal.



Le lien @Rinzwind porte sur une question différente. La question de Macydanim concerne l'ajout de chaînes aux noms de fichiers, pas au contenu des fichiers.
jc

Réponses:


38
  • rename 's/^/1_/' * pour renommer tous les fichiers du répertoire courant

ou

  • rename 's/^/1_/' DATASET*pour renommer tous les fichiers du répertoire courant en commençant par DATASETleur nom

Explication: l'expression s/^/1_/dit: "remplacer le début du nom de fichier (c'est-à-dire ce symbole -> ^) 'par 1_".


Si vous renamene le faites pas hors de la boîte, vous devez installer prename(renommer PERL).
user1359

14

Vous pouvez facilement renommer tous les fichiers dans le répertoire courant (en supposant que vous utilisez bash):

for i in *; do mv "$i" 1_"$i"; done

évidemment, prenez-le avec soin; il remaniera TOUS les fichiers du répertoire courant qui sont 'visibles' (le nom de fichier ne commençant pas par un '.')


C'est la première solution correcte que j'ai trouvée, qui peut être utilisée pour ajouter quelque chose comme .csvà un sous-ensemble de fichiers, avec une expression générique modifiée à la place de *. +1
Zelphir Kaltstahl

Hou la la! Boucles sur la CLI! C'est nouveau. :)
Raymond Wachaga

9

Vous pouvez utiliser pyRenamer . Il peut être trouvé dans le centre du logiciel Ubuntu. entrez la description de l'image ici Le modèle de fichier d'origine doit être {X} et le modèle de fichier renommé doit être 1_ {1}


Un de mes programmes préférés
Allan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.