IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Renommer en masse des fichiers avec des expression régulière dans leurs nom


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 19
    Points : 12
    Points
    12
    Par défaut Renommer en masse des fichiers avec des expression régulière dans leurs nom
    Bonjour,

    Je suis a la recherche d'un script/programme qui soit sous Linux, et qui permettrais de renommer en masse des fichiers/Dossier dont le nom contient des expression régulière (%$/\! etc ...) avec prise en compte des sous dossier si possible

    Exemple: Devis-10/12/09.odt en Devis-10-12-09.odt

    L'explication c'est que les utilisateurs sont très imaginatifs au niveau des noms de fichiers et cela pose problème lors de sauvegarde sur disque dure externe (en Fat 32 et NTFS), ou sur serveur.

    Ça fait quelque temps que je cherche mais sans trop de résultat ...

    Merci de votre aide

    Totorux

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 160
    Points
    160
    Par défaut
    Bonjour

    Il faudrait savoir quels motifs tu veux remplacer/corriger exactement, mais c'est du détail.

    Je ne sais pas à quel point tu t'y connais en shell, donc le "squelette" que je te propose est à analyser/compléter.
    N'hésite pas à poser des questions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #!/bin/sh
     
    RACINE=point/de/depart
     
    for file in $(find $RACINE)
    do
        BASE=$(basename $file)
        DIR=$(dirname $file)
        BASE=$(tr "/" "-" <<<$BASE)
        mv $file $DIR/$BASE
    done
    Là on ne fait que renommer les "fichiers". Si tu veux aussi renommer les répertoires, tu n'est pas obligé d'utiliser BASE et DIR, mais "corriger" directement $file.

    ATTENTION CEPENDANT, ce script est à tester, je n'ai pas la possibilité de le faire pour l'heure, j'ai peut-être oublié des choses.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Merci de ta réponse on va dire qu'au niveau bash je "débute" j'ai fait quelques scripts mais relativement simple et je doute qu'ils soient bien construit (ex: https://totorux.info/weblog/?p=263).

    Lors de mes recherche je suis tombé là dessus:

    http://www.nas-forum.com/forum/index...n-des-accents/

    Qui semble intéressant, j'étais partit sur l'idée de faire évoluer ce petit script.

    Ta solution m'intéresse également (je l'ai compris :p), je pensais essayer de faire ça en 2 passes, l'une se chargeant des nom de dossier et une seconde des noms de fichiers.

    Au niveau des caractères que je vise a supprimé en voici une liste (en plus des caractères accentué) : :%?!$&()*><"[]/\
    L'idée est de pouvoir copier sans souci les fichiers.

    Encore Merci

    Totorux

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 160
    Points
    160
    Par défaut
    Il me semble également qu'un utilitaire existe pour "convertir" les noms de fichiers. Malheureusement, je n'ai plus le nom en tête.

    Sinon, avec tr tu dois pouvoir t'en sortir.

    Enfin, si tu es curieux, et que tu n'as pas peur de voir de "nouvelles choses", tu peux regarder au niveau de Perl. Je sais qu'il existe des outils/modules pour renommer des fichiers en masse. Mais je n'ai plus les noms en tête non plus.

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Bonjour BSans

    J'ai essayé de regarder du coté d'un programme qui s'appelle detox, mais j'ai pas été très convaincus du résultat.

    Autrement non je ne suis pas réfractaire a apprendre de nouveau langage. J'hésite entre le perl et le python (attention au Troll )

    @+

    Bonne journée

    Totorux

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 160
    Points
    160
    Par défaut
    Sans vouloir entrer dans un débat qui pourrait durer des posts, je vois plus le python comme un langage de programmation, et perl comme un langage de script.

    Pour ce que tu veux faire, un script est suffisant (d'où mon allusion à Perl).
    Maintenant, ce qui est faisable par un script est faisable par une application. C'est juste au niveau de la conception que ça diffère.

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Ma réponse était juste une pic gratuite en tout cas merci de ton éclaircissement.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 160
    Points
    160
    Par défaut
    Je viens de relire le script que je t'avais proposé, en fait il y aurait une correction à y apporter.

    par défaut, find va afficher tous les "chemins" qu'il trouvera à partir de la racine que tu lui fournis.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    moi@toto$ pwd
    /home/moi
    moi@toto$ mkdir -p titi/{blah,blih,bloh}
    moi@toto$ touch titi/{blah,blih,bloh}/machin
    moi@toto$ find titi
    titi
    titi/blah
    titi/blah/machin
    titi/blih
    titi/blih/machin
    titi/bloh
    titi/bloh/machin
    moi@toto$
    Comme on ne veut intervenir dans un premier temps que sur les fichiers (tu comprendras également que renommer les dossier peut poser problème pour la suite de la boucle), on ajoute l'option -type f à find.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    moi@toto$ find titi -type f
    titi/blah/machin
    titi/blih/machin
    titi/bloh/machin
    moi@toto$

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Points : 37
    Points
    37
    Par défaut
    J'utilise métamorphose : http://file-folder-ren.sourceforge.net/
    Entre Ce que je pense, Ce que je veux dire, Ce que je crois dire, Ce que je dis, Ce que vous avez envie d'entendre, Ce que vous entendez, Ce que vous comprenez... il y a dix possibilités qu'on ait des difficultés à communiquer. Mais essayons quand même...
    Bernard Werber

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    ludo.guy Toi je t'aime !
    Mille merci il a l'aire souple et configurable, et je doute qu'avec mes pauvre compétence je pourrais faire un centième de se qu'il fait.
    Encore super merci.

    Merci aussi a ceux qui m'ont aider et pour vos idées

    Totorux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/10/2011, 23h38
  2. ouvrir des fichiers avec des programmes externes
    Par julie_lab dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 25/10/2010, 06h05
  3. ouvrir des fichiers avec des noms incomplets
    Par Merel dans le forum MATLAB
    Réponses: 2
    Dernier message: 14/09/2010, 16h01
  4. Réponses: 3
    Dernier message: 24/03/2009, 14h08
  5. Structure des fichiers avec des templates
    Par Trunks dans le forum C++
    Réponses: 2
    Dernier message: 26/08/2008, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo