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

Shell et commandes GNU Discussion :

Renommer des fichiers en masse


Sujet :

Shell et commandes GNU

  1. #1
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 284
    Par défaut Renommer des fichiers en masse
    Bonsoir,

    J'ai un dossier qui contient plusieurs fichiers tels que fichier 0.1.txt, fichier 0.2.txt que je souhaiterais renommer en masse en version 0.1.txt, version 0.2.txt.

    Sous windows j'aurais simplement fait :

    Sous Linux, il semblerait que je doive passer par sed ou autre.

    Pourriez-vous me confirmer cela, en plus je suis pas à l'aise avec les expressions régulières
    J'ai vu qu'il existait rename qui utilise aussi les expressions régulières.

    Il n'y a pas plus simple ? comme sous Windows ? (dans ce cas je ferais avec)
    En attendant, je peux le faire depuis le gestionnaire de fichiers (de Xfce pour mon cas)
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  2. #2
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Par défaut
    Bonsoir,

    Regardez donc l'utilitaire pyRenamer qui est un outil très sympa pour renommer des fichiers. Il est très simple à prendre en main.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Bonjour,

    Linux a plus d'âme regarde la commande rename
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 284
    Par défaut
    Merci pour vos retours.

    Pour pyrenamer, j'en ai pas besoin car l'explorateur de fichier intégré à Xfce donne le résultat escompté (il s’appuie peut-être dessus).

    @nbah : j'ai trouvé rename, mais il utilise les expressions régulières, qui sont très puissantes, mais qui me font galérer.

    J'en conclus donc qu'il n'y pas en natif de fonctionnalité aussi simple que la commande Windows pré-citée.

    Tant-pis.

    Merci pour vos retours.

    Je clos donc le sujet.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    ta requête ne paraît pourtant pas très complexe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rename 's/[^ ]*/version/' fichier\ *
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    La syntaxe de rename varie. La vieille version permet de faire l'équivalent de "ren".

    La version "actuelle" utilise les expressions regulières OU PAS. Dans ton exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename 's/fichier/version/' fichier*
    C'est plus facile et plus puissant que "ren".
    Pour changer de minuscules en majuscules, par exemple, cette commande suffit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename 'y/[a-z]/[A-Z]/' fichier*
    Et comme entendre que 20doses pourrait être mieux me file des boutons, je tiens à rappeler que refuser de prendre 2 minutes pour comprendre les expressions régulières te coupe de rename, grep, awk, sed, vim, emacs, php, bash etc ... autant arrêter de venir sous GNU Linux

    Enfin, si ren te fait rêver, tu peux faire un alias d'une commande que tu te fabriques.

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 284
    Par défaut
    Je n'ai pas l'occasion de pratiquer les expressions régulières, donc les exploiter me nécessite une gymnastique. Je cherchais juste à savoir si une commande spécialisée et simple répondait à mon besoin. Donc le plus simple dispo est rename.

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename 's/fichier/version/' fichier*
    reste abordable.

    ren ne me fait pas spécialement rêver, j'y suis surtout habitué.

    Sinon avec les expressions régulières c'est puissant.

    Merci à vous.

    sinon ceci est plus clair :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename 's/fichier/version/' fichier*
    que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rename 's/[^ ]*/version/' fichier\ *
    la première notation est plus simple. Comme Flodelarab précise que rename utilise ou non les expressions régulières je présume que la première notation est sans expression régulière et la seconde avec.

    J'ai du mal à saisir [^ ] : [] correspondant à n'importe quel caractère cité entre les crochets, le ^signifiant début de la ligne, c'est l'espace que je ne comprend pas car je comprends (je pense de travers) n'importe quel fichier débutant par espace, puis n’importe quel caractère avec l'*
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  8. #8
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    je traduis [^ par "jusqu'à l'un des caractères qui précédent ]"; ici, l'espace.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  9. #9
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Dans une expression régulière, entre crochets se trouve la liste des caractères possibles.
    Exemple:
    "[Pp]aul aime [ML]arry" correspond à :
    Paul aime Marry
    paul aime Marry
    Paul aime Larry
    paul aime Larry

    On inverse en commençant la liste par ^
    "c[^u]l" correspond à:
    cpl
    col
    cil
    c l
    mais à pas à ce à quoi tu penses, gros dégoutant !

    [^ ] signifie donc "n'importe quel caractère, tant que ce n'est pas l'espace".

    A ne pas confondre avec ^ en tant que début de ligne.

    Le programme va donc successivement reconnaître f, i, c, h, i, e, puis r dans "fichier 01.txt" en s'arrêtant à l'espace puisqu'interdit.

  10. #10
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 284
    Par défaut
    Merci les gars.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

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

Discussions similaires

  1. [Upload] Renommer des fichiers en masse en ligne
    Par gras_s dans le forum Langage
    Réponses: 4
    Dernier message: 04/04/2008, 10h57
  2. Recherche d'un script PHP pour renommer des fichiers en masse
    Par pekka77 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 19/11/2006, 23h43
  3. Renommer des fichiers
    Par Cathy dans le forum Linux
    Réponses: 3
    Dernier message: 12/09/2005, 17h24
  4. [LG]programme qui renomme des fichiers
    Par Ne0taku dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2005, 21h18
  5. [] [Réseau] Renommer des fichiers dans un site FTP
    Par JerBi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/08/2003, 00h35

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