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 :

Script majuscule en miniscule


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Par défaut Script majuscule en miniscule
    Bonjour,

    J'ai écrit un script permettant de transformer les noms de fichier en majuscule dans un répertoire donné en des fichiers de même noms en caractères minuscules.

    for i in * ; do [ -f $i ] && mv -i $i `echo $i | tr '[A-Z]' '[a-z]'`;done;

    Cette commande me retourne l'erreur suivante "mv: /home/poste4/image/IMAGE.JPG and /home/poste4/images/IMAGE.JPG are the same file".

    Cela veut dire que la transformation de majuscule en minuscule n'a pas marché. Pouvez-vous me dire où est l'erreur dans a commande?

    Merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 388
    Par défaut
    Lu,

    Enlève les quottes pour la commande tr, ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for i in * ; do [ -f $i ] && mv -i $i `echo $i | tr [A-Z] [a-z]`;done;
    Par contre tu auras toujours un avertissement de la commande mv pour tous les fichiers qui sont déjà en minuscules.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Par défaut
    Merci pour votre réponse.

    Puis-je savoir la signification des codes suivants: [ -f $i ] &&

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    [ -f "$i" ] && plutôt (avec les guillemets).
    c'est un test qui vérifie que $i est un fichier régulier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for i in *; do
       if [ -f "$i" ] && [[ $i =~ [A-Z] ]]; then
          mv -i "$i" $(echo "$i" | tr [A-Z] [a-z])
    # en bash
          mv -i "$i" $(tr [A-Z] [a-z] <<<"$i")
       fi
    done
    J'ai ajouté un test pour ne convertir que les fichiers qui contiennent au moins une majuscule.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Ignorer majuscules et miniscules dans href
    Par brajae dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 11/04/2015, 07h11
  2. Réponses: 2
    Dernier message: 08/03/2008, 09h37
  3. Réponses: 3
    Dernier message: 04/12/2007, 12h22
  4. Détection majuscules et miniscules
    Par CHAPLAST dans le forum Delphi
    Réponses: 6
    Dernier message: 20/02/2007, 20h30
  5. Gestion des majuscules des miniscules des accent
    Par issam16 dans le forum Access
    Réponses: 2
    Dernier message: 13/07/2006, 14h21

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