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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  variable dans awk

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

variable dans awk

n°799761
KelvintHop​ps
Posté le 19-07-2004 à 16:50:36  profilanswer
 


Comment faire pour que awk reconnaisse cette variable car dans le cas présent, l'affichage de nomfic ne s'effectue pas  :whistle:  
 
 
nomfic=`basename $ligne`nomchemin=`dirname $ligne`
awk '  
BEGIN {flag=1;cpt=0}  
 
$0 ~ /\/\*/ && $0 !~ /\*\// {  
 flag = 0  
}  
$0 ~ /\*\// && $0 !~ /\/\*/ {  
 flag = 1  
 next  
}  
$0 !~ /^[ \t]*\/\*.*\*\/[ \t]*$/ && $0 !~ /^\/\*.*\*\/$/ && $0 !~ /^.*\/\// && $0 !~ /^;/ &&  $1 !~ /^\@\"/ && $0 !~ /^[ \t]*$/ && flag != 0 {  
 print $0 > "./resultat.txt"
 cpt++  
}  
END {print $nomfic cpt}' $ligne
 
Merci  ;)  
 

mood
Publicité
Posté le 19-07-2004 à 16:50:36  profilanswer
 

n°799789
pilou51
Posté le 19-07-2004 à 17:05:53  profilanswer
 

Je pense qu'il faut que tu le passes en paramètre au AWK déjà, puis tu peux récupérer sa valeur (donc le nom du fichier) dans la variable ARGV, qui est un tableau dont les indices vont de 0 à ARGC-1.
 
Parceque là j'ai pas trop regardé le code du awk mais si tu lui passes pas de fichier en paramètre je vois mal ce qu'il peut faire? (les $0 concernant la ligne courante du fichier traité).

n°799790
pilou51
Posté le 19-07-2004 à 17:06:31  profilanswer
 

Je viens de voir que la variable FILENAME contient aussi le nom du fichier passé en paramètre.

n°799850
KelvintHop​ps
Posté le 19-07-2004 à 17:47:12  profilanswer
 

En effet avec la variable FILENAME je recupère bien le fichier mais cela ne me convient pas en fait je voudrait recuperer le chemin complet où je vais chercher mon fichier
 
En affectant PWD a une variable, puis en passant cette variable dans le awk cela devrait marcher mais je ne sais pas utiliser ARGV
 
Pilou51 tu sais toi ??

n°800178
matafan
Posté le 20-07-2004 à 03:09:51  profilanswer
 

awk -v nomfic=$nomfic ' ... '

n°800874
KelvintHop​ps
Posté le 20-07-2004 à 16:00:52  profilanswer
 

Est-il possible d'inclure une variable dans une commande sed comme celle qui suit ??
 
sed 's/\./$toto/' $fic

n°801459
matafan
Posté le 21-07-2004 à 04:02:10  profilanswer
 

Tu peux toujours utiliser les double quotes, auquel cas $toto sera evalué avant même d'être passé à sed.

n°801492
bobuse
Posté le 21-07-2004 à 09:37:47  profilanswer
 

il ya plus simple, il suffit de fermer et de réouvrir les quotes dans awk :

$TOTO="hop"; awk 'BEGIN { print "'$TOTO'"; };'
hop


Message édité par bobuse le 21-07-2004 à 09:38:00
n°801656
KelvintHop​ps
Posté le 21-07-2004 à 11:38:10  profilanswer
 

Merci pour vos réponse mais je comprend pas pourquoi y'a pas moyen de passer une variable dans sed  
 
toto=`PWD`
 
sed 's/\./"$toto"/' < $fic1 > $fic2
 
j'ai essayé tout un tas de truc les quote simple double ect...mais rien a faire  
 
-:(

n°801658
bobuse
Posté le 21-07-2004 à 11:39:31  profilanswer
 

même chose :

TOTO="hop"; echo hiphophip | sed -e 's/'$TOTO'/hip/'


Message édité par bobuse le 21-07-2004 à 11:40:27
mood
Publicité
Posté le 21-07-2004 à 11:39:31  profilanswer
 

n°801681
KelvintHop​ps
Posté le 21-07-2004 à 11:46:42  profilanswer
 

bobuse,  
 
voila ce que j'obtient avec ce code  
 
toto=`PWD`
 
sed 's/\./'$toto'/' < $fic > ./lisMod.txt
 
 
 
toto=L:/DRAD_DSW/Ds2m/Ds2mA100
+ sed s/\./L:/DRAD_DSW/Ds2m/Ds2mA100/
sed: garbage after command

n°801713
bobuse
Posté le 21-07-2004 à 12:07:48  profilanswer
 

sed -e ;)

n°801834
KelvintHop​ps
Posté le 21-07-2004 à 13:48:23  profilanswer
 

sed -e donne le même resultat  
 
+ + PWD
toto=L:/DRAD_DSW/Ds2m/Ds2mA100
+ sed -e s/\./L:/DRAD_DSW/Ds2m/Ds2mA100/
sed: garbage after command
+ exit

n°801992
bobuse
Posté le 21-07-2004 à 15:55:31  profilanswer
 

et essaie juste ma commande :

TOTO="hop"; echo hiphophip | sed -e 's/'$TOTO'/hip/'

n°803923
matafan
Posté le 23-07-2004 à 03:43:17  profilanswer
 

Dans ce cas tu peux carrément virer les quotes, elles ne servent à rien.


Message édité par matafan le 23-07-2004 à 03:43:52

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  variable dans awk

 

Sujets relatifs
FireFox n'aime pas les css avec variable php ?Tableau[variable] incompatible en C++ ??? :| [Résolu]
Incrémenter le nom d'une variableTransmettre une variable sans url et formulaire
[PHP] Ajouter une variable à la Query_String[Résolu] Insérer variable dans "value" dans un formulaire
[ASP] Variable globale ?[Résolu] Insérer variable dans une URL !
SELECT/Mysql : syntaxe avec 1 seule variable sur 2 colones ?verifier le format d'une variable
Plus de sujets relatifs à : variable dans awk


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