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

  FORUM HardWare.fr
  Linux et OS Alternatifs

  Comment transmettre des variable avec awk -v val=valeur ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment transmettre des variable avec awk -v val=valeur ?

n°648730
weed
Posté le 12-03-2005 à 16:31:29  profilanswer
 

Voici mon script :
 

Code :
  1. user=`cat /etc/passwd | cut -d ":" -f 1`;
  2. awk -v var=$user '{
  3.                         for (i in $user)
  4.                         do
  5.                                 if ($i=$3)
  6.                                 {
  7.                                         print $1;
  8.                                 }
  9.                         done
  10.                         }'
  11. security


 
 
 
lorsque je le lance j'ai comme message d'erreur :
 $ ./test2
awk: cannot open bin (No such file or directory)
./test2: line 12: security: command not found
 
 
Pourquoi ne veut il pas prendre en compte mon fichier texte security qui est dans le meme repertoire que mon script ?


Message édité par weed le 13-03-2005 à 11:56:15
mood
Publicité
Posté le 12-03-2005 à 16:31:29  profilanswer
 

n°648736
911GT3
en roue libre
Posté le 12-03-2005 à 16:45:41  profilanswer
 

peut-être tout simplement parce que security n'est pas dans le $PATH ?
 
en mettant un ./security ?


Message édité par Acontios le 12-03-2005 à 16:45:59

---------------
"not everyone likes metal..... FUCK THEM" Fat Ed.
n°648737
911GT3
en roue libre
Posté le 12-03-2005 à 16:47:34  profilanswer
 

[jorge@blackknight]-(/Temp)> cat test.sh
#!/bin/bash
echo OK !
 
[jorge@blackknight]-(/Temp)> cat launch.sh
#!/bin/bash
test.sh
[jorge@blackknight]-(/Temp)> cat launch2.sh
#!/bin/bash
./test.sh
[jorge@blackknight]-(/Temp)> sh launch.sh
launch.sh: line 2: test.sh: command not found
[jorge@blackknight]-<Failed 127>-(/Temp)> sh launch2.sh
OK !


---------------
"not everyone likes metal..... FUCK THEM" Fat Ed.
n°648807
weed
Posté le 12-03-2005 à 19:04:08  profilanswer
 

911GT3 a écrit :

peut-être tout simplement parce que security n'est pas dans le $PATH ?
 
en mettant un ./security ?


 
Pourquoi voudrait que je mette security dans le $PATH.
security n'est juste qu'un fichier texte que j'aimerais que awk traite, security n'est pas une commande

n°648831
weed
Posté le 12-03-2005 à 19:13:15  profilanswer
 

normallement la syntaxe c'est  
awk '{ traitement}' fichier_texte_a_traiter

n°648937
weed
Posté le 12-03-2005 à 23:23:37  profilanswer
 

up

n°648939
Jar Jar
Intaigriste
Posté le 12-03-2005 à 23:33:15  profilanswer
 

1) si tu mets -v var=$user, la variable s'appelle $var dans awk, pas $user.
 
2) il faut mettre des \ en fin de ligne, sinon le shell considère ça comme une nouvelle commande.

n°648998
weed
Posté le 13-03-2005 à 11:55:23  profilanswer
 

1./ oui je me suis rendue qu'il fallait que j'utilise $val et non pas $user.
J'ai aussi remarqué qu'il fallait ne pas mettre de $ dans - v val=user
 
2./ oki, tu veux dire apres l'accolade....
 
Mais en fait j'arrive toujours pas à transmettre la variable $user dans awk
 
 

Code :
  1. user=`cat /etc/passwd | cut -d ":" -f 1`;
  2. awk -v val="user" '{
  3.                     for (i in val)
  4.                     {
  5.                               print $i
  6.                     }
  7.                   }' /home/nec1/awk/security


 
lorsque je le lance, je n'arrive pas a afficher les valeurs de val. Cela n'affiche rien alors que cela devrai me donner les utilisateurs de mon systeme.
 
 
La syntaxe d'un for dans un awk est :
for (i in liste)
{
}  
il faut mettre des ( ) et des { }  et il ne faut pas mettre de $ pour la variable liste, si j'ai bien compris : http://www.chez.com/brunogarcia/Unix/Docs/awk.html
 


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

  Comment transmettre des variable avec awk -v val=valeur ?

 

Sujets relatifs
[eterm, xterm...] pb après un changement de variable PS1torsmo : valeur ram correcte chez vous ?
ou ajouter variable environnement ?Multiplication et variable
Unix, Crontab, editeur et variable d'environnement[Awk] Comportement différent suivant la variable d'environnement LANG
Enregistrer de nouvelle variableenlever les espaces avant et après une variable
formater une variableApache ne prends pas en compte la valeur de max_clients
Plus de sujets relatifs à : Comment transmettre des variable avec awk -v val=valeur ?


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