Forum général.général Renommage par le répertoire père

Posté par  . Licence CC By‑SA.
Étiquettes :
1
5
juil.
2018

Bonjour,
J'ai un problème de renommage de fichiers (sous Linux Mint, donc avec shell Bash) que je ne sais pas trop comment résoudre, n'étant pas familier des outils shell appropriés ni des expressions régulières qui le permettraient sans doute.
Il s'agit d'un lot d'images prises sur un site qui donne souvent le même nom aux images et les distingue par le nom du répertoire père.
Je veux donc ajouter ce nom au début du nom des fichiers.

Quelqu'un peut-il me dire quel(l) application, commande ou script permet de faire cela facilement, après l'avoir éventuellement étudiée mais sans y passer trop de temps si possible.
j'ai lu que KRename avait pas mal de possibilités mais étant sous Maté et non sur KDE, je ne vais pas me risquer à installer une appli qui dépend de kde-runtime.

Merci.

  • # Aurais-tu un exemple d'arborescence à donner ?

    Posté par  . Évalué à 4.

    Je pense avoir compris ce que tu décris, mais je n'en suis pas certain, donc un exemple permettrait de lever le doute.

    • [^] # Re: Aurais-tu un exemple d'arborescence à donner ?

      Posté par  (site Web personnel) . Évalué à 4. Dernière modification le 05/07/18 à 14:52.

      De ce que je comprend tu as

      folder1
        img1.png
        img2.png
      folder2
        img1.png
        img2.png
      

      Et tu veux obtenir

      folder1_img1.png
      folder1_img2.png
      folder2_img1.png
      folder2_img2.png
      

      Si c'est le cas, une boucle for et un coup de realpath pour savoir où tu te situes ou sois 2 boucles for imbriquée et tu mémorises ton dossier courant ou encore en méthode bourrine

      for i in folder*/*; do echo mv "${i}" "${i/\//_}"; done
      mv folder1/1.png folder1_1.png
      mv folder1/2.png folder1_2.png
      mv folder2/1.png folder2_1.png
      mv folder2/2.png folder2_2.png

      Is it a Bird? Is it a Plane?? No, it's Super Poil !!!

      • [^] # Re: Aurais-tu un exemple d'arborescence à donner ?

        Posté par  . Évalué à 3. Dernière modification le 05/07/18 à 15:09.

        un truc dirname et basename

        regarde ce que te donne la commande

        basename folder1/1.png
        dirname folder1/1.png

        ensuite je dirais qu'un simple code comme celui-ci devrait marcher (evidemment faudra peut-etre permuter basename et dirname dans le script

        for i in folder*/*; do
           pere=$(basename $i)
           fichier=$(dirname $i)
           echo mv "${i}" "${pere}_${fichier}";
        done
  • # pyRenamer

    Posté par  . Évalué à 1. Dernière modification le 09/07/18 à 00:31.

    pyRenamer, je ne sais plus si c'est du gnome ou mate mais ça semble correspondre. Pour le répertoire père, c'est {dir} (l'aide est bien faite).
    Il y a effectivement de bonnes chance pour que KRename fonctionne pareil.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.