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

Ubuntu Discussion :

renommer tous les fichiers d'un dossier en ajoutant une même extension


Sujet :

Ubuntu

  1. #1
    Membre habitué
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Points : 129
    Points
    129
    Par défaut renommer tous les fichiers d'un dossier en ajoutant une même extension
    Bonjour,

    je voulais savoir s'il était possible de renommer tous les fichiers d'un dossier en ajoutant "_2000" à la fin de chaque nom?

    par exemple, un fichier nommé "blabla_embl.txt" deviendrait "blabla_embl_2000.txt".

    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mv ./*_embl.txt ./*_embl_2000.txt
    mais ça ne marche pas : il essaie de déplacer les fichiers et non de les renommer...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mv: la cible `./*_embl_2000.txt' n'est pas un répertoire
    il est toujours possible de les faire un par un, mais y'en a un paquet de fichier, alors s'il existe une commande pour le faire, je suis preneuse

  2. #2
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Salut.

    Moi généralement, je fais ce genre de chose avec un bon awk des familles accompagné d'un sed :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ls *_embl.txt | awk '{print "mv " $1 " " $1}' | sed s%_embl.txt%_embl_2000.txt%2 | bash

    Y'a sans doute plus simple (avec un for par exemple), mais cette solution est très véloce même pour un grand nombre de fichiers.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  3. #3
    Membre confirmé
    Avatar de MaliciaR
    Inscrit en
    Juillet 2008
    Messages
    513
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2008
    Messages : 513
    Points : 600
    Points
    600
    Par défaut
    Ouip, awk est une bonne solution

    Voici une autre solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    rogue@yersinia:~$ mkdir test
    rogue@yersinia:~$ cd test
    rogue@yersinia:~/test$ touch bla_embl.txt bla0_embl.txt bla2_embl.txt
    rogue@yersinia:~/test$ ls
    bla0_embl.txt  bla2_embl.txt  bla_embl.txt
    rogue@yersinia:~/test$ for i in *_embl.txt; do j=`echo $i | sed -e 's/\([Aa-Zz]*_[Aa-Zz]*\)\.txt/\1_2000.txt/'` ; mv $i $j ; done
    rogue@yersinia:~/test$ ls
    bla0_embl_2000.txt  bla2_embl_2000.txt  bla_embl_2000.txt
    rogue@yersinia:~/test$
    Avec une uniligne en perl, tu peux meme les trier

    EDIT : tu as aussi rename qui peut faire ca et si tu es un(e) adepte de zsh, tu as zmv qui fait ca si je ne m'abuse.
    Le tact dans l'audace c'est de savoir jusqu'où on peut aller trop loin. Cocteau
    L'abjection la plus totale, ce n'est pas de trahir, c'est de ne jamais donner un commencement de réalité à ses rêves les plus fous. M. Moreau


    Les indispensables : Les règles, , FAQ et tutos avant de poster, et !
    Traduction de Linux Device Drivers 3 : venez participer
    membre de l'April - Promouvoir et défendre les logiciels libres

  4. #4
    Membre habitué
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Points : 129
    Points
    129
    Par défaut
    merci à vous

    j'ai pas testé vos solutions car étant un peu pressée par le temps j'ai tout fait à la main, mais je garde vos solutions sous le coude pour la prochaine fois car y'en aura sans doute une

    EDIT: je connais pas zsh...

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    awk...sed... vous voulez un marteau pour dégommer un moucheron, ou vous préférez y aller à la pelleteuse ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for file in *_embl.txt
     do
       mv $file ${file%.txt}_2000.txt
    done

    et encore, ça c'est parceque je ne connais pas rename
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    awk...sed... vous voulez un marteau pour dégommer un moucheron, ou vous préférez y aller à la pelleteuse ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for file in *_embl.txt
     do
       mv $file ${file%.txt}_2000.txt
    done

    et encore, ça c'est parceque je ne connais pas rename
    Oui certes, mais en cas de traitement d'un grand nombre de fichier c'est beaucoup plus rapide qu'avec un for.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  7. #7
    Membre confirmé
    Avatar de MaliciaR
    Inscrit en
    Juillet 2008
    Messages
    513
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2008
    Messages : 513
    Points : 600
    Points
    600
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    awk...sed... vous voulez un marteau pour dégommer un moucheron, ou vous préférez y aller à la pelleteuse ?
    Je ne sais pas pour Deadpool, mais personnellement je fais à la façon qui me semble la plus évident pour mes connaissances. Et j'ai trouvé que dans le cas où je dois faire du formatage du genre qui peut compter des centaines ou des milliers de fichiers, je m'en sors très bien avec un sed (ou un rename aussi). Merci donc de ne pas être moqueur envers les gens
    Le tact dans l'audace c'est de savoir jusqu'où on peut aller trop loin. Cocteau
    L'abjection la plus totale, ce n'est pas de trahir, c'est de ne jamais donner un commencement de réalité à ses rêves les plus fous. M. Moreau


    Les indispensables : Les règles, , FAQ et tutos avant de poster, et !
    Traduction de Linux Device Drivers 3 : venez participer
    membre de l'April - Promouvoir et défendre les logiciels libres

  8. #8
    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 : 56
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Salut,

    Avec rename cela donnerait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename "s/(.*)\.(.*)/\$1_2000\.\$2/" *.txt
    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.

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

Discussions similaires

  1. Renommer tous les fichiers d'un dossier
    Par minipopov dans le forum Linux
    Réponses: 2
    Dernier message: 26/05/2012, 03h11
  2. Renommer tous les fichiers d'un répertoire à partir d'une liste
    Par erustika dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 01/09/2011, 17h10
  3. Réponses: 4
    Dernier message: 29/08/2006, 18h02
  4. Réponses: 5
    Dernier message: 18/01/2006, 14h05
  5. [LG] Accéder à tous les fichiers d'un dossier
    Par arno15 dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2005, 10h18

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