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 :

Renommage multiple de fichiers


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 19
    Par défaut Renommage multiple de fichiers
    Bonjour, voici mon probléme

    J'ai par exemple essai.vmdk et essai_32.icar a transformé en test.vmdk et test_32.icar

    mon script rename.script:

    for i in $(ls $1*);
    do mv $i $2*;
    done

    A l'execution ca donne : rename.script test essai

    et ben ca done un unique fichier appelé test*
    comment protéger la suite du nom du fichier?
    Merci

  2. #2
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Puisque je suis dans le coin... Mais après j'ai du boulot... Je donne juste le code, j'espère qu'il est assez explicite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    srcName="$1"
    srcList=$(ls $srcName*)
    dstName="$2"
     
    for srcFile in $srcList
    do
    	mv $srcFile ${srcFile/$srcName/$dstName}
    done

  3. #3
    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
    Salut,

    Sinon (sur ubuntu du moins) il y a la commande rename.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename "s/essai/test/" *
    Cela substitue la chaine "essai" par la chaine "test" pour tout les fichiers.
    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.

  4. #4
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 19
    Par défaut
    Merci Jmlyne, le résultat est là, c'est parfait! ;-)

  5. #5
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 19
    Par défaut
    Merci Winnt pour l'info

  6. #6
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    C'est vraiment intéressant, Winnt. En fait rename existe partout. Mais les paramètres sont plus simples que tu l'indiques:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename essai test essai*
    Merci pour cette commande, nouvelle dans mon répertoire.

  7. #7
    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
    Salut,

    J'utilise toujours cette syntaxe qui fonctionne très bien chez moi (je fais pas mal de renommage de fichier ).

    Je ne suis pas sur que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename "s/toto.*\./tata./" toto*
    passe avec ta syntaxe.

    Edit : je viens d'essayer avec ta syntaxe je me fait jeter
    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.

  8. #8
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bonjour Winnt,

    C'est vraiment bizarre. De mon côté (Fedora 8), j'ai 3 fichiers: xxx, xxx.200X et xxx.200X.sorted. Je voudrais les renommer en passant les xxx en yyy. Si je fais:
    ça marche impec. Par contre, si j'utilise la syntaxe sed:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename "s/xxx.*/yyy.*/" xxx*
    je n'ai pas d'erreur mais pas d'action visible non plus. Néanmoins je suis une buse en syntaxe sed. C'est bon mon code?

  9. #9
    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
    Salut,

    Effectivement ta syntaxe ne va pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename "s/xxx.*/yyy.*/" xxx*
    signifie rechercher 3 caractères x suivi d'un nombre quelconque de caractères.
    signifie remplacer les caractères recherchés par yyy.* (dans la section des caractères à substituer les regex ne fonctionnent pas ce qui est un peu génant parfois mais on s'y fait).

    Donc ton code doit être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename "s/xxx/yyy/" xxx*
    PS : on peut utiliser la syntaxe suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename "s/xxx/yyy/g" xxx*
    si on veut faire le remplacement intégralement sur le nom du fichier et non pas sur la première occurence.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xxx.yyy.xxx.200X deviendra yyy.yyy.yyy.200X
    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.

  10. #10
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bin c'est dommage que rename ne soit pas plus portable. Même avec une syntaxe sed corrigée par Winnt, ma Fedora ne fait rien, l'argument ne semble pas assez convaincant. Je continuerai d'utiliser rename, tout en sachant que c'est peu portable.

  11. #11
    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
    Salut,

    En y réfléchissant je me suis peut-être un peu avancer car
    transforme en minuscule les noms de fichiers en majuscule.

    Citation Envoyé par Alain.g sur ubuntu-fr.org
    ne conserve que les 36 premiers caractères du fichier.
    Avec rename (sans faire de boucle) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename 's/^(.{36}).*$/$1/' *
    En conservant l'extension :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename 's/^(.{36}).*\./$1./' *
    Donc à creuser je pense (pour moi en tout cas).
    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. Réponses: 5
    Dernier message: 02/02/2007, 16h53
  2. [9i]Renommage d'un fichier .dbf
    Par Keke des Iles dans le forum Oracle
    Réponses: 1
    Dernier message: 24/01/2007, 12h08
  3. [WebForms] Envoi multiple de fichiers
    Par titexe dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 05/12/2006, 18h24
  4. accès multiples à un fichier crypté sous EFS
    Par digital prophecy dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 28/06/2006, 14h52
  5. Réponses: 3
    Dernier message: 29/04/2006, 12h58

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