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 :

Problème de guillemet avec awk


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 46
    Points
    46
    Par défaut Problème de guillemet avec awk
    Bonjour,

    J'ai une boucle awk dans laquelle j'effectue plusieur commande et notament un printf dans un fichier.

    Mon problème : j'ai une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $LIBELLE="Envoi du fichier XXX"
    je souhaite l'inclure dans ma boucle awk

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    awk '
    BEGIN {
            FS="|"
            OUTPUT_FILE="affaires.sql" 
    }
    { 
    printf "@fichier.plsql  $LIBELLE \"%s\" \"%s\"  \n", $1, $2 > OUTPUT_FILE      
     
    }'  < $nom_fic
    Mais du fait que ma variable comporte déjà des '"' celà me retourne le message d'erreur Cela peut paraitre tout bête, mais comment inclure ma variable sans avoir de message PARSE ERROR ou autre ?
    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Je suis passé par une variable intermédiaire mais le problème persiste :

    Ceci fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    awk '
    BEGIN {
            FS="|"
            OUTPUT_FILE="'relance.sql" 
            LIBELLE="Envoi du fichier XXX"
    }
    { 
             printf "@fichier.plsql " > OUTPUT_FILE 
             printf " \"%s\" ", LIBELLE > OUTPUT_FILE 
             printf " \"%s\" \"%s\"  \n", $1, $2 > OUTPUT_FILE      
     
    }'  < $DATA_DIR/$nom_fic
    mais pas ça ... (avec $LIB="Envoi du fichier XXX")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    awk '
    BEGIN {
            FS="|"
            OUTPUT_FILE="'relance.sql" 
            LIBELLE=$LIB
    }
    { 
             printf "@fichier.plsql " > OUTPUT_FILE 
             printf " \"%s\" ", LIBELLE > OUTPUT_FILE 
             printf " \"%s\" \"%s\"  \n", $1, $2 > OUTPUT_FILE      
     
    }'  < $DATA_DIR/$nom_fic
    Ici la variable LIBELLE se retrouve vide ..

    si quelqu'un pouvait éclairer ma lanterne ..
    Merci

  3. #3
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut Re: [AWK] problème de guillemet
    Citation Envoyé par lili_bzh
    Bonjour,

    J'ai une boucle awk dans laquelle j'effectue plusieur commande et notament un printf dans un fichier.

    Mon problème : j'ai une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $LIBELLE="Envoi du fichier XXX"
    ...
    ...

    Mais du fait que ma variable comporte déjà des '"' celà me retourne le message d'erreur
    bonjour,
    détrompe-toi à ce stade ta variable ne possède pas de '"'

    Regarde cet exemple :

    linimi:/tmp# mavar="bonjour le monde"
    linimi:/tmp# echo $mavar
    bonjour le monde
    linimi:/tmp# mavar="\"bonjour le monde\""
    linimi:/tmp# echo $mavar
    "bonjour le monde"

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Je comprends bien la réponse , mais cela peut-il alors provenir du fait qu'il y a des espaces dans ma variable ? Et dans ce cas comment contourner le problème ?

    En effet dans le BEGIN de ma boucle awk je déclare des chemins de fichiers et je n'ai pas de problème, alors que pour cette "fameuse" variable j'ai cette erreur "unterminated string" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    awk '
    BEGIN {
            FS="|"
            ERR_FILE="'/tmp/$FIC_ERR'"
            LIBELLE="'$LIB_CONTACT'"
    }
    Je suis un peu perdue là ...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Bon pour ceux que ça interesse il faut mettre la variable entre guillemets pour que ça fonctionne : awk '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BEGIN {
            FS="|"
            ERR_FILE="'/tmp/$FIC_ERR'"
            LIBELLE="'"$LIB_CONTACT"'"
    }
    Cette solution focntionne correctement mais si quelqu'un a une explication rationnelle ...

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/02/2012, 11h57
  2. [JSP][SQL]Probleme de guillemets avec SQL
    Par Drizzt [Drone38] dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/08/2005, 18h39
  3. Réponses: 5
    Dernier message: 09/01/2005, 19h54
  4. Réponses: 33
    Dernier message: 15/10/2004, 16h19
  5. Problème sur une cmd avec AWK
    Par OrangeBud dans le forum Linux
    Réponses: 3
    Dernier message: 02/06/2004, 10h51

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