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 :

[redHat] `find -exec' dans un script retourne erreur


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Par défaut [redHat] `find -exec' dans un script retourne erreur
    Bonjour les experts,

    Je souhaite exécuter une commande find dans mon script shell mais malheureusement ça me retourne une erreur malgré que la ligne de commande marche très bien et fait le nécessaire en ligne de commande, je sais très bien que c'est un problème de cotes et de caractères spéciaux mais je n'arrive pas à voir exactement d'où vient l'anomalie. La ligne de commande est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find -iname "*.lst" -exec rename .lst .csv {} \;
    Merci par avance pour vos suggestions si vous arrivez à voir qu'est ce qui empêche le bon fonctionnement de ligne dans le script shell.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Par défaut
    Bonjour,

    J'ai trouvé une petite solution mais lors de l’exécution le script me rajoute bizarrement un point d’interrogation (?) à la fin de l'extension du fichier. vous aurez une idée d'ou vient il ce (?) et comment l’éviter svp?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find -name "*.lst" | xargs rename .lst .csv

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

    ça me retourne une erreur
    soit, mais laquelle ?!

    mais, a priori, la syntaxe utilisée pour rename n'est pas la bonne, et devrait même ne pas fonctionner en ligne de commande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find  -iname "*.lst" -exec rename 's/.lst$/.csv/' {} \;
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Par défaut
    Bonjour N_BaH,

    Merci pour ta réaction mais ton code ne marche pas malheureusement pour moi. La distribution que j'ai est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Distributor ID: RedHatEnterpriseServerDescription:    Red Hat Enterprise Linux Server release 5.8 (Tikanga)
    Release:        5.8
    Codename:       Tikanga
    Le code qui marche parfaitement en ligne de commande est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find  -name "*.lst" -exec rename .lst .csv {} \;
    Par contre le code suivant marche dans un script shell mais me rajoute un point d'interrogation la fin de de l'extension que je n'ai aucune idée d'où il sort. D'où j'ai des noms de fichier de type MonNomDeFichier.csv?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find -name "*.lst" | xargs rename .lst .csv
    Mon intention est de renommer les fichiers .lst en fichier .csv.


    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    soit, mais laquelle ?!

    mais, a priori, la syntaxe utilisée pour rename n'est pas la bonne, et devrait même ne pas fonctionner en ligne de commande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find  -iname "*.lst" -exec rename 's/.lst$/.csv/' {} \;

  5. #5
    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
    Le code qui marche parfaitement en ligne de commande est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find  -name "*.lst" -exec rename .lst .csv {} \;
    sans doute une particularité de RedHat (distribution à laquelle je n'ai pas accès).

    cependant, tu dis que dans un script, cette commande retourne une erreur.
    est-ce que tu peux nous communiquer ce message d'erreur : on ne peut pas avancer sans ce message.

    à tout hasard, ajoute un set -x dans le script avant la commande pour qu'on voit ce qui se passe.
    et montre-nous aussi ce qu'affiche la commande ls -b sur les fichiers .lst.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Par défaut
    Si je tape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find -iname "*.lst" -exec rename .lst .csv {} \;
    J'aurai l'erreur :
    Erreur : find: Paramètre manquant pour " -exec "
    Par contre les autres lignes ne me retournent pas d'erreurs particulières.

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

Discussions similaires

  1. Commande "exec" dans un script TCL
    Par majemoi dans le forum Tcl/Tk
    Réponses: 2
    Dernier message: 18/08/2011, 20h49
  2. [AC-2003] une expression valide dans une requete retourne #Erreur
    Par mamadouabd dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/10/2009, 19h46
  3. erreur dans mon script
    Par Swata dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 00h02
  4. [langage]erreur dans mon script
    Par Fabouney dans le forum Langage
    Réponses: 11
    Dernier message: 30/06/2005, 14h58
  5. [Apache] Erreur dans mes scripts CGI
    Par GLDavid dans le forum Apache
    Réponses: 2
    Dernier message: 28/08/2004, 06h14

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