commande bc dans awk - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 28-02-2009 à 11:22:18
encadre bc par des anti-quote
`bc` |
Combinaison : AltGr 7
Marsh Posté le 28-02-2009 à 12:33:43
L'erreur de syntaxe vient du fait que tu as encadré ton script awk par des simples quote, et que le shell n'évalue pas les variables entre les simple quotes (contrairement aux double quotes). Donc ton $(...) est passé tel quel à awk, qui se chie dessus.
Solution :
echo "100 200" | awk '{ convB2($1) }
function(I){
x='"$(echo "obase=2; 100" | bc)"';
return $x }'
Ca devrait le faire.
Marsh Posté le 28-02-2009 à 13:15:49
Ca marche parfaitement ! Il faut juste remplacer "return $x" par "return x".
Merci beaucoup !!!
Marsh Posté le 28-02-2009 à 13:36:56
Juste pour rajouter un peu de piment... :
Êtes-t-il possible d'ajouter une variable qui remplacerait la valeur 100 :
echo "100 200" | awk '{ convB2($1) }
function(I){
x='"$(echo "obase=2; I" | bc)"';
return x;
}'
Ca serait vraiment parfais, car avec ce code, "bc" travail avec I et non ce que la variable I contient...
Marsh Posté le 28-02-2009 à 11:13:05
Bonjour à toutes et à tous !
Savez vous s'il est possible d'ajouter la commande "bc" dans du "awk" ?
Si oui connaissez-vous la syntaxe ? Car j'ai un probleme :
echo "100 200" | awk '{ convB2($1) }
function(I){
x=$(echo "obase=2; 100" | bc); <-----------Erreur de syntaxe au niveau du pipe
return $x }'
Merci si quelqu'un peut m'aider..