faire une addition avec le flux d'entrée [script] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 30-08-2005 à 15:03:07
awk '{somme+=$1} END {print somme}'
Si tes nombres en hexa ne sont pas de la forme 0x234EF, il faut faire :
sed s/^/0x/ | awk '{somme+=$1} END {print somme}'
Marsh Posté le 30-08-2005 à 16:38:10
16:37 jmouette@silicium ~ > sed s/^/0x/ | awk '{somme+=$1} END {print somme}'
00000123
00001000
000000A2
4549
Marsh Posté le 30-08-2005 à 17:08:29
je ne comprends pas, effectivement là ça marche mais si je mets ces lignes dans un fichier toto et que je fais un cat toto | sed s/^/0x/ | awk '{somme+=$1} END {print somme}' ça me retourne 0
Désolé si c'est une erreur bête.
Marsh Posté le 31-08-2005 à 00:16:26
Heu vous etes sur que awk peut sommer des nombres hexadecimaux directement ?
Marsh Posté le 31-08-2005 à 13:10:54
ReplyMarsh Posté le 31-08-2005 à 15:33:11
Perdu. Awk ne connait que les nombres decimaux. gawk connait aussi l'octal et l'hexadécimal, mais pas pour le flux d'entrée par défaut. Si tu veux interpréter le flux d'entrée comme de l'hexa en gawk, il faut utiliser l'option --non-decimal-data.
http://www.gnu.org/software/gawk/m [...] 02dnumbers
Marsh Posté le 01-09-2005 à 11:18:30
matafan a écrit : Perdu. Awk ne connait que les nombres decimaux. |
Encore une preuve de la supériorité de mawk sur gawk (en plus d'être plus rapide).
Marsh Posté le 30-08-2005 à 14:45:26
J'ai un script qui me sort des nombres, un par ligne, en héxa, et je voudrais utiliser un pipe puis un autre script pour obtenir la somme de ces nombres, est-ce possible ?
Merci