web-dev-qa-db-fra.com

Comment déplacer des numéros dans les noms de fichiers, lors d'une opération de changement de nom par lot?

J'essaie de comprendre comment renommer des fichiers depuis quelques heures.

J'ai 2000 fichiers qui sont comme ça:

file.1.pdb
file.2.pdb
file.3.pdb

Je voudrais renommer ces fichiers en quelque chose comme:

file.pdb.1
file.pdb.2
file.pdb.3
12
user812758

Si vous avez installé rename, vous pouvez utiliser

rename -n 's/(\.\d+)\.pdb$/.pdb$1/' *.pdb   # just watch what WOULD happen
rename    's/(\.\d+)\.pdb$/.pdb$1/' *.pdb   # actually rename the files

La commande rename peut être installée via

Sudo apt install rename
15
PerlDuck

Utilisation de Perl rename:

rename -n 's/(\.\d+)(\.pdb)/$2$1/' *.pdb

Explication rapide:

  • *.pdb Correspond à tous les fichiers qui se terminent par .pdb. (Fait par le coquillage)
  • (\.\d+) Faites correspondre un point littéral, puis un ou plusieurs chiffres décimaux. Les parens créent un groupe de correspondance.
  • $2$1 Inverser les premier et deuxième groupes de correspondance.
  • -n Aucune action (simuler). Si le résultat est satisfaisant, exécutez à nouveau la commande sans cet indicateur.
11
wjandrea

Grâce à mmv (renommer plusieurs fichiers à l'aide de modèles génériques), rien de plus simple:

mmv '*.*.*' '#1.#3.#2' *.pdb

ou zmv sur zsh Shell; c'est un module qui permet de renommer; voir ZMV-Exemples :

zmv -w '*.*.*' '$1.$3.$2' *.pdb
11
αғsнιη

Vous pouvez utiliser ce script:

for i in `seq 1 2000`; do
mv file.$i.pdb file.pdb.$i
done

Ou cette commande conviviale copier-coller:

for i in `seq 1 2000`; do mv file.$i.pdb file.pdb.$i; done

Pour utiliser les commandes ci-dessus, mettez tous les 2000 fichiers dans un dossier, ouvrez le terminal dans ce répertoire, puis exécutez la commande ci-dessus.

7
Ali Razmdideh

Récemment, Nautilus, le gestionnaire de fichiers par défaut, a reçu une boîte de dialogue de changement de nom de lot. Ce n'est pas encore assez puissant pour faire ce que vous voulez. Mais heureusement, il existe Thunar, un autre gestionnaire de fichiers pouvant être installé. Avec thunars rename dialog, vous pouvez faire ce que vous voulez en utilisant l'interface graphique.

Première installation de thunar:

Sudo apt install thunar

Lancez thunar, accédez au répertoire contenant vos fichiers. Puis sélectionnez-les tous. presse F2.

Dans la boîte de dialogue qui s'ouvre, sélectionnez à nouveau tous les fichiers. Changez le mode en "Search & Replace" et en "Name & Suffix". Cochez "Expression régulière". Maintenant, utilisez les éléments suivants comme modèles de recherche et de remplacement:

file\.(.+)\.pdb

et

file.pdb.$1

Enfin, cliquez sur le bouton renommer.

L'avantage de cette méthode est que vous obtenez un aperçu visuel de ce qui se passera avant de renommer.

thunar rename dialog

5
Sebastian Stark

Vous pouvez utiliser rename à partir de util-linux pour cela (la commande s'appelle rename.ul dans Ubuntu):

rename.ul .pdb '' *
rename.ul "file." "file.pdb." *

Cela supprime d'abord l'extension .pdb de la fin puis la réinsère au milieu.

3
user812791