Oui ta méthode marche bien 
mais j'ai oublié de te préciser que les valeurs entre crochets ne sont pas forcément des champs, il va arriver très souvent que j'ai des données de cette forme :
Bonjour c'est un [LOGIN][USER][PWD] pour tester [LOGIN][USER], bye
d'où mon utilisation de while(match.....) au lieu de for(champs...)
donc j'ai essayé de m'inspirer de ton script qui fonctionne pour faire le mien, et je n'y arrive pas 
ça ne m'affiche pas ce que je souhaite.
Pourrais tu m'aider de nouveau et m'expliquer mes erreurs ci-desssous
merci d'avance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#!/usr/bin/awk -f
BEGIN {
#system("cat _var")
print "\nResultat\n"
}
$0 !~ /^#/ && $0 !~ /^$/
{
while(match($0,/\[[A-Z]*\]/))
{
var=substr($0,RSTART+1,RLENGTH-2) # récup variable ex : LOGIN
vor=substr($0,RSTART,RLENGTH) # récup variable complète ex : [LOGIN]
if (ENVIRON[var] != "")
{
sub(/.*/,"${"var"}",vor)
}
}
printf("%s ", vor)
} |
Partager