Renommer les images dans un ordre spécifique

8

C'est mon problème: j'ai un dossier avec 500 images nommé:

1.jpg
2.jpg
3.jpg

etc..

J'ai copié ce dossier et maintenant je dois renommer ces mêmes images de 501 à 1000 mais dans l'ordre comme ceci:

1.jpg  becomes    501.jpg
2.jpg  becomes    502.jpg
3.jpg  becomes    503.jpg          
....

Lorsque j'utilise ma commande de changement de nom standard:

i=501;for img in $(find . -iname '*.jpg'); do echo -n "Converting $img"; mv $img $i.jpg  && echo $i && ((i++)); done

Il commande des images de 501 à 1000 mais elles sont toutes dispersées:

23.jpg becomes 501.jpg,    
66.jpg becomes 502.jpg 
...   

(ils sont dans le bon ordre, mais ça les mélange)

Je sais que c'est probablement une commande qui me manque ...

Anti douleur
la source
Utilisez 2 variables i et j mv $ i.jpg $ j.jpg et incrémentez vos variables.
Panther
merci, j'espère que vous comprendrez. J'ai cherché mais je n'ai pas trouvé la réponse ..
Painkiller
Juste curieux, les noms originaux, dans quelle gamme sont-ils? Le numéro d'origine doit-il simplement être renommé + 500?
Jacob Vlijm
Oui Jacob toi +500. J'essaie d'écrire ce que Bodhi m'a dit mais je ne suis pas si bon dans lnux, je me suis tué pour écrire la commande renommer ci-dessus: D
Painkiller
Mon pauvre ordinateur portable est très occupé, mais si aucune réponse satisfaisante n'apparaît (ce dont je doute :)) et si vous n'y parvenez pas, je publierai un minuscule script python ce soir.
Jacob Vlijm

Réponses:

7

Essayez Thunar , qui est le gestionnaire de fichiers par défaut pour Xfce. Il est très léger et est livré avec un outil de renommage en vrac pratique. Vous pouvez installer Thunar en exécutant la commande suivante dans Terminal:

sudo apt-get install thunar

Vous pourrez probablement également installer à partir du logiciel Ubuntu.

Comment utiliser l'utilitaire

  1. Une fois que vous avez installé Thunar, lancez l' utilitaire Bulk Rename .
  2. Cliquez sur l' icône + et ajoutez les fichiers que vous souhaitez renommer dans le bon ordre.
  3. Cliquez sur la liste déroulante juste en dessous de la liste des fichiers sélectionnés et sélectionnez Numérotation . Cliquez sur la case à côté et sélectionnez Nom uniquement .
  4. Dans la zone " Start With: " entrez 501, laissez la zone " Text: " vide. Vous devriez voir l'aperçu des modifications dans la colonne Nouveau nom .
  5. Pour appliquer les modifications, cliquez sur le bouton Renommer les fichiers .

Outre la numérotation, cet utilitaire prend en charge les actions suivantes:

  • Insérer la date / l'heure
  • Insérer / écraser
  • Supprimer des caractères
  • Rechercher et remplacer
  • Majuscule minuscule
pomsky
la source
Merci mec, tu es le MVP! Je dois seulement ajouter que je devais également changer le format de texte en: Texte - Numéro. (juste au cas où quelqu'un d'autre l'utilise)
Painkiller
2
Passer de fm à ... effectuer une tâche simple me semble exagéré. L'écriture d'une simple extension de script nautilus prend moins de temps que la commutation fm.
Jacob Vlijm
1
@JacobVlijm J'utilise Thunar uniquement pour l'outil de renommage en masse avec Nautilus. Thunar est assez léger et ne semble pas causer de conflit avec Nautilus ou d'autres gestionnaires de fichiers.
pomsky
4
Si vous ne voulez pas d'un deuxième gestionnaire de fichiers, cela pyrenamerfonctionne parfaitement et c'est ce que j'utilise pour les renommages de bunk quand je veux une interface graphique pour comparer avant / après la sortie.
Tom Brossman
13

La findcommande trouve des fichiers pour 'directory' ( 23.jpg, 66.jpg...). vous pourriez mettre un |sortaprès la découverte.

Mais vos méthodes sont trop complexes.

for i in $( seq 1 500 ) ; do
    j=$(( $i + 500 ))
    mv $i.jpg $j.jpg
done 
waltinator
la source
3
for i in {1..500}; do ...aurait été plus facile.
David Foerster
11

Avec renamecommande.

rename -n 's/^(\d+)/sprintf("%d",$1+500)/e' *.jpg

Ou en pure bashet en utilisant l' expansion des paramètres shell .

for FILE in *.jpg; do
    mv "$FILE" "$(( ${FILE%.jpg}+500 )).jpg" 
done 
αғsнιη
la source
5

Si j'ai bien compris ce que vous demandez, je pense que vous pouvez le faire en utilisant l'outil de renommage par défaut:

rename 's/^(\d+)/sprintf("%d",$1+500)/e' *.jpg -vn

Vous devez supprimer le -vncommutateur (verbose - aucune action) après le test, pour rendre la modification effective.

sempaiscuba
la source
Comment installer cet outil dans Ubuntu? par défaut renameest lié à prename(1)partir du perlpackage qui ne supporte pas toutes ces options de ligne de commande.
David Foerster
@DavidFoerster Vous avez peut-être raison. Je n'ai pas trouvé de lien d'installation actuel (je ne l'ai pas utilisé depuis environ 2014). Avec l'outil de renommage par défaut, je pense que l'expression regex devrait être 's/^(\d+)/sprintf("%d",$1+500)/e'. Je mettrai à jour ma réponse en conséquence. Merci.
sempaiscuba
1
Votre réponse est maintenant un double de AFSHIN .
David Foerster
@DavidFoerster Désolé, quelle réponse? Les seules autres réponses que je peux voir sont de Pomsky & Waltinator. Ni utiliser renommer (aucune version).
sempaiscuba
Le lien direct vers la réponse que je veux dire est inclus dans mon commentaire précédent.
David Foerster
0

Une autre façon d'y parvenir avec la commande juste shell

count = 1; pour i in ls; faire mv $ i CN $ ((count ++)). $ {i ## *.}; terminé

aneeshep
la source