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

Unix Discussion :

Pb de perte d'apostrophe avec awk


Sujet :

Unix

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 38
    Points : 31
    Points
    31
    Par défaut Pb de perte d'apostrophe avec awk
    Bonjour à tous.

    J'ai un petit souci dans un script shell.

    Je dois lire un fichier de cette forme :

    Clef1:info1:info2:....:info avec une apostrophe
    Clef2:info1:info2:....:info avec une apostrophe
    Clef3:info1:info2:....:info avec une apostrophe
    ...

    j'ai ce script awk que j'appel dans un autre script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    BEGIN {
      y = 0;
      FS=":"
      }
    {
      if ( n == $1)
      {
        a = $0
        y = 1
      }
    }
    END {
      if ( y == 0 )
      {
        a = ""
     
      }
      printf a
    }
    Mon problème est que lorsque que awk va chercher la ligne, il me supprime l'apostrophe.
    J'ai réussi à conserver l'apostrophe en mettant la donnée de mon fichier entre double quote, mais je préférerais la laisser nue.

    Auriez-vous une idée?

    Je vous remercie par avance.

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 149
    Points : 28 116
    Points
    28 116
    Par défaut
    Bonjour,

    Peut-on avoir un exemple de fichier d'entrée, et un exemple de résultat d'exécution de ton script, afin de bien voir quel est ton problème ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Alors mon fichier il a cette tête là (c'est un fichier paramètre qui sert à l'appel d'un progiciel, la première colonne est la clef de recherche) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    4578:$FIC_CONF/image.png:18:0:1946:Demande d'information1
    1245:$FIC_CONF/image.png:18:0:1946:Demande d'information2
    8778:$FIC_CONF/image.png:18:0:1946:Demande d'information3
    ....
    et mon awk me retourne (par exemple avec la clef 1245):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    1245:$FIC_CONF/image.png:18:0:1946:Demande dinformation2
    Si j'écris mon fichier ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    4578:$FIC_CONF/image.png:18:0:1946:"Demande d'information1"
    1245:$FIC_CONF/image.png:18:0:1946:"Demande d'information2"
    8778:$FIC_CONF/image.png:18:0:1946:"Demande d'information3"
    ....
    Il me renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    1245:$FIC_CONF/image.png:18:0:1946:Demande d'information2
    Mais je voudrais (pour des raisons d'utilisations) qu'il me renvoie "Demande d'information2" sans que j'ai besoin de mettre les "".

    Merci pour vos réponses.

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 149
    Points : 28 116
    Points
    28 116
    Par défaut
    Bonjour,

    Je n'ai pas de probleme avec ce script awk, applique a la premiere ligne de l'exemple de fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    awk -F':' '{ if (4578 == $1) { print $NF } }'   test.txt
    Est-ce que vous utilisez une version particuliere de awk ?
    Pouvez-vous nous donner un exemple d'appel du script awk ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    alors je l'appel dans un script de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    variable=$(eval echo `awk -f $repertoireShell/rechercheParametres.awk -v n=$clef $FIC_CONF/"fichier.prm"`)
    Ensuite j'applique un cut sur la zone pour recupérer mes differents paramètres.

    Je ne pense pas que ça soit un awk particulier.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Personne n'a une idée?

  7. #7
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 149
    Points : 28 116
    Points
    28 116
    Par défaut
    Essaye d'executer ton script "a la main", c'est a dire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -f $repertoireShell/rechercheParametres.awk -v n=$clef $FIC_CONF/"fichier.prm"
    Si ca ne fonctionne toujours pas, essaye avec un script awk simpliste, juste pour te permettre de savoir ou se situe le probleme : dans l'interpretation, ....
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  8. #8
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Citation Envoyé par Agent_Nivek Voir le message
    alors je l'appel dans un script de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    variable=$(eval echo `awk -f $repertoireShell/rechercheParametres.awk -v n=$clef $FIC_CONF/"fichier.prm"`)
    Ensuite j'applique un cut sur la zone pour recupérer mes differents paramètres.

    Je ne pense pas que ça soit un awk particulier.
    et pourquoi pas un code plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variable=`grep ^${clef}: $FIC_CONF/fichier.prm`
    Signé : Capitaine Jean-Luc Picard

  9. #9
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Je vous remercie infiniement!!
    Grace à vos conseils j'ai mis le doigt sur le problème : en fait c'est le eval qui me bouffe ma quote.
    Maintenant c'est nikel!!

    Encore merci!!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/02/2012, 11h57
  2. Réponses: 5
    Dernier message: 09/01/2005, 19h54
  3. Installation et perte d'icône avec Firebird
    Par SebCBien dans le forum Applications et environnements graphiques
    Réponses: 22
    Dernier message: 31/10/2004, 16h46
  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