Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2954 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Extraire variable de awk

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Extraire variable de awk

n°1293897
percherie
Posté le 19-10-2011 à 17:00:45  profilanswer
 

Bonjour,
 
Je suis en train de découvrir awk. Je l'utilise depuis un script en bash sur lunix.
 
Après plusieurs recherche j'ai réussi à  définir des variables shell dans awk grâce à awk -v variable_awk=$variable_shell
 
Par contre pour faire l'inverse je ne trouve aucune page qui en parle. Je met ma main à couper que j'utilise les mauvais mot clé.
 
J'ai essayé de redéfinir la variable dans le bloc END mais ça ne fonctionne pas. Voici un des test que j'ai réalisé
 

Code :
  1. #!/bin/bash
  2. salut="coucou"
  3. awk -v salut=$salut '{
  4.   print "Variable en awk = " salut
  5.   salut_awk = "coucou_awk"
  6. }
  7. END {
  8. print "fin du script la variable salut vaut toujours " salut
  9. print "la nouvelle variable salut_awk vaut " salut_awk
  10. }' /home/percherie/Bureau/proglist.txt
  11. echo "retour de awk vaut : " $salut_awk

mood
Publicité
Posté le 19-10-2011 à 17:00:45  profilanswer
 

n°1294149
sputnick
bip...bip...bip...bip...bi...b
Posté le 22-10-2011 à 00:13:19  profilanswer
 

Salut,
 
c'est pas des plus propre, mais je voit pas comment faire autrement :
 

Code :
  1. stemp=$(awk 'BEGIN{print "salut_awk=bar"}')
  2. eval "$stemp"
  3. echo $salut_awk


 
Le probleme c'est qu'on pourrait appeler system() dans awk, mais comme ca crèe un sous shell, ton shell courant ne
"verra" pas la variable. Sinon, on pourrais utiliser des file-descriptors, mais bon, c'est un peu lourdingue.
 
Le mieux serais de savoir ce que tu cherches à faire pour trouver une autre solution à moins que la question était
d'ordre générale.


Message édité par sputnick le 22-10-2011 à 00:13:33
n°1294290
percherie
Posté le 23-10-2011 à 21:12:47  profilanswer
 

Le problème était d'ordre général. Je n'avais pas compris les conseils obtenu sur l'amélioration de mon script. awk doit être utilisé pour autre chose que ce que j'avais en tête.
 
J'ai même trouvé mieux en utilisant Shell-Parameter-Expansion (en anglais)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Extraire variable de awk

 

Sujets relatifs
Probleme de variable avec sedbash : extraire 1 chaine
[AWK] Associer des champs à une variable texte[Bash] Modifier une partie d'une variable mais pas tout !!
[bash] tester si une variable (multivaluée) est vide[BASH] Récupérer un morceau de variable...
Crée une variable d'environnement permanentesshell : ne pas interpreter le $ comme une variable
Comment fixer une variable shell pour tout le mondeDécalration de variable
Plus de sujets relatifs à : Extraire variable de awk


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR