Utilisation de "-v" pour passer un Array ? [AWK] - Shell/Batch - Programmation
MarshPosté le 30-09-2005 à 08:53:18
Hello,
J'ai un script ksh dans lequel une variable contient le résultat d'une commande multi-lignes du genre:
echo "$VAR" var1:value1 var2:value2 varN:valueN
Le FS ":" pouvant être changé bien sûr ...
J'aimerai passer cette variable dans AWK via l'option -v (awk -v VarArray="$VAR" ou bien VarArray=`echo "$VAR"` pour pouvoir générer un array dans la BEGIN {} section en vue de l'utiliser sur le traitement d'un fichier ou de l'output d'une autre commande de la sorte:
print Array[var1] -> value1
Ou bien utiliser la commande getline dans le script AWK en vue d'ouvrir une source externe VAR/File ... Des idées ? Actuellement j'ai l'impression que AWK (en fait le NAWK de Solaris comparable à GAWK) n'aime pas les variables comportant des CR.
Merci d'avance !
Message édité par Deadlock le 30-09-2005 à 08:53:53
--------------- Institutions européennes:Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
BEGIN { FS = ":" Cmd="echo $VAR" while ((Cmd | getline) > 0) Array[$0] = $1 close(Cmd) }
Bon weekend.
--------------- Institutions européennes:Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Marsh Posté le 30-09-2005 à 08:53:18
Hello,
J'ai un script ksh dans lequel une variable contient le résultat d'une commande multi-lignes du genre:
echo "$VAR"
var1:value1
var2:value2
varN:valueN
Le FS ":" pouvant être changé bien sûr ...
J'aimerai passer cette variable dans AWK via l'option -v (awk -v VarArray="$VAR" ou bien VarArray=`echo "$VAR"` pour pouvoir générer un array dans la BEGIN {} section en vue de l'utiliser sur le traitement d'un fichier ou de l'output d'une autre commande de la sorte:
print Array[var1] -> value1
Ou bien utiliser la commande getline dans le script AWK en vue d'ouvrir une source externe VAR/File ...
Des idées ? Actuellement j'ai l'impression que AWK (en fait le NAWK de Solaris comparable à GAWK) n'aime pas les variables comportant des CR.
Merci d'avance !
Message édité par Deadlock le 30-09-2005 à 08:53:53
---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.