Forum Programmation.shell recherche name=value dans un fichier txt

Posté par  .
Étiquettes : aucune
0
27
fév.
2006
Bonjour,

Mon niveau de connaissance BASH est vraiment au plus bas ... tout oublie depuis les etudes et je dois m'y remettre pour produire un outil de monitoring, bref j'aurais besoin de votre aide:

Voici ma question du jour:
Je cherche a recuperer la VALUE correspondant a NAME dans un fichier texte qui a ce format:

NAME=VALUE
NAME=VALUE
NAME=VALUE

le script doit me renvoyer la valeur de VALUE pour NAME correspondant en scpecifiant la valeur de NAME.

Merci
  • # Simple

    Posté par  . Évalué à 4.

    Si dans ton fichier il n'y a que des entrees de type NAME=VALUE, il suffit de faire dans ton script bash:

    . fichier.txt
    • [^] # Re: Simple

      Posté par  . Évalué à 1.

      sur le fond, je suis pas sur que ça réponde bien à la question.
      J'oserai jamais non plus utiliser une solution comme ça dans un truc en prod (trop peur qu'un éventuel mainteneur ne comprenne pas l'idée) mais j'aime bien l'approche =)

      en fait, plus j'y réfléchis, plus ça me plait :)
  • # sed ? awk ?

    Posté par  (site web personnel, Mastodon) . Évalué à 2.

    sed -e 's;=; ;g' monfichier | awk '{ print "Ma clé " $1 " a comme valeur " $2 }'
    • [^] # Re: sed ? awk ?

      Posté par  . Évalué à 1.

      ok merci mais je veux passer en argument la valeur de la cle uniquement et recuperer la valeur correspondante. je ne veux pas parser tout le fichier
      • [^] # Re: sed ? awk ?

        Posté par  (site web personnel, Mastodon) . Évalué à 3.

        Alors ca devient :

        grep "maclé=" monfichier | sed -e 's;^maclé=;;g'
        • [^] # Re: sed ? awk ?

          Posté par  . Évalué à 1.

          ok merci ca marche ...
          J'ai ete oblige de remplacer les ; par des / ...

          merci encore.
        • [^] # Re: sed ? awk ?

          Posté par  . Évalué à 4.

          > grep "maclé=" monfichier | sed -e 's;^maclé=;;g'

          Pas besoin d'un grep, il suffit de dire à sed de n'afficher que la ligne qui nous intéresse :
          % sed -n -e "s/^maclé=//p" mon fichier

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.