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 :

Erreur dans un programme awk


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut Erreur dans un programme awk
    Bonjour,

    j'ai écrit un programme awk (avec la participation de certains d'entre vous) pour modifier mes programme .pc sous unix.

    Dans une partie de mon code, j'ajoute des instructions,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if ($0 ~ /return\(0\);/) {
       print " EXEC SQL ROLLBACK WORK; /*  RELEASE;   GF 01102007 */"
       print "/* GF 01102007 debut :  */"
       print "  sprintf(lib err1,\"argc[0] TRAITEMENT TERMINE ANORMALEMENT, CODE ERREUR = %.70s (%d)\",sqlca.sqlerrm.sqlerrmc,-sqlca.sqlcode);"
       print "  varCpy(lib_err,lib_err1);"
       print "  EXEC SQL EXECUTE"
       print "  BEGIN"
       print "  :cd_ret := FSET_MESSAGE\(\'SYSTEM\',\'SERVEUR\',0,:User,"
       print "    to_number(nvl(:sessionid,\'0\')),"
       print "    \'M\',sysdate,:lib_err\);"
       print "  END;"
       print "  END-EXEC;"
       print "/* GF 01102007 fin   */"
    Au niveau de print " :cd_ret := FSET_MESSAGE\(\'SYSTEM\',\'SERVEUR\',0,:User,"
    j'ai rajouté des \ devant les ' sinon les ' n'apparaissaient pas dans mes programme .pc modifié.

    et depuis quand j'exécute mon awk j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./awk_ajoutlignes_gf.sh: 0403-057 Erreur de syntaxe Ó la ligne 133 : `(' inattendu.
    la ligne 133 étant la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "    to_number(nvl(:sessionid,\'0\')),"
    Quelqu'un peut-il m'aider svp

  2. #2
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Attention, 2 façons de traiter des commandes avec awk :

    awk ' commandes awk ' fichier_de_données
    awk -f fichier_de_commandes_awk fichier_de_données

    Tu utilises sans doute la 1ère façon et cela pose problème à cause des simple-quotes ( ' ) qui sont significatives pour awk.

    Soit, tu utilises la 2ème façon (tu crée un fichier de commandes awk),
    soit tu fais comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    quote="'"
     
    awk -v quote=$quote '
    {
       print "  :cd_ret := FSET_MESSAGE("quote"SYSTEM"quote","quote"SERVEUR"quote",0,:User,"
       print "    to_number(nvl(:sessionid,"quote"0"quote")),"
    } ' FIC1
    Loi de Murphy:
    La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
    La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.

  3. #3
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    Merci beaucoup, j'ai garder la 1er méthode en apportant les modifs que tu m'as donné et ça fonctionne très bien.

    A+

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

Discussions similaires

  1. Exo, erreur dans le programme - AIDE
    Par GENgis_- dans le forum C++
    Réponses: 6
    Dernier message: 28/10/2006, 14h11
  2. [Help] Erreurs dans mon programme
    Par Tacha dans le forum Langage
    Réponses: 13
    Dernier message: 02/10/2006, 13h57
  3. erreur dans un programme
    Par krole57 dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/06/2006, 14h30
  4. Erreur dans un programme php pour une connexion à une bdd
    Par gaetan.tranvouez dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/06/2006, 21h06
  5. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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