2013-06-11 1 views
1

haut de la journée tous .please J'ai vérifié les autres erreurs qui se ressemblaient ou avec le même code d'erreur. ils ne semblent pas être les mêmes. J'aurai besoin de ton aide. écheveaux tousCaractère invalide '' dans l'expression

# Create awk program : myflowcalcall.awk 

# a general script for computing throughput 

BEGIN { 
     arguments = 2; 
    if (ARGC < arguments || ARGC > arguments || flowtype == 0) { 
     printf("error: wrong number of arguments.\nawk: usage – awk -f flowcalc.awk [-v graphgran=value] [-v fidfrom=value] [-v fidto=value] [-v fid=value] -v flowtype=\"type\" -v outdata_file=\"filename\" indata_file\n–%d",ARGC); 
     exit; 
           } 
measure_interval = 0.5; 
bits = 0; 
first_time = graphgran; 
    } 

    { 
    if (($1 == "r") && 
    ((fidfrom == 0 && fidto ==0) || (($8 == fid) && ($3 == fidfrom) && ($4 == fidto))) && 
    (flowtype == "all" || flowtype == $5)) { 
if (($2 - first_time) > measure_interval) { 
    first_time = first_time + measure_interval; 
    rate = (bits/1000000)/first_time; 
    print filename first_time, rate; 
         } 
bits = bits + $6 * 8; 
        } 
    } 
END { 
measure_interval = 0.5; 
first_time = first_time + measure_interval; 
rate = (bits/1000000)/first_time; 
print filename first_time, rate; 
} 

il y a une erreur qui

awk: myflowcalcall.awk: 20: if (($ 2 - first_time)> measure_interval) { awk: myflowcalcall.awk: 20:^invalide char ' ' dans l'expression

J'ai essayé et vérifié l'erreur mais en vain. ci-dessous est la commande I donné à courir à partir du terminal dans Ubuntu 12.04LTS

awk -f -v myflowcalcall.awk graphgran = 0 -v -v fidfrom = 2 = 3 fidto -v -v fid = 1 flowtype = » cbr » -v outdata_file = » rien » johna4bp.tr> thr1

exécutant le

xxd myflowcalcall.awk | grep " e2\|e2 " 

produit

00000f0: 6177 6b3a 2075 7361 6765 20e2 8093 2061 awk: usage ... a 
0000190: 6174 615f 6669 6c65 5c6e e280 9325 6422 ata_file\n...%d" 
00002c0: 2828 2432 20e2 8093 2066 6972 7374 5f74 (($2 ... first_t 

puis-je connaître les points d'erreur. merci à tous

+1

Le '' 'semble mauvais. Changez-les pour '" '. – fedorqui

+0

Pourquoi ils ont l'air si gentil?: P –

+0

Fedorqui merci J'ai changé cela et toujours donné une erreur de" awk: myflowcalcall.awk: 20: if (($ 2 - first_time)> measure_interval) { awk: myflowcalcall.awk: 20:^char invalide ' ' dans l'expression " –

Répondre

0

vous semblez avoir utilisé un éditeur prenant en charge Unicode à un moment donné qui a remplacé certains de vos caractères simples par des caractères multi-octets similaires.

Les codes pour les devis et les remplacements tableau de bord commencent par e2, essayez

xxd myflowcalcall.awk | grep " e2\|e2 " 

les trouver

+0

grâce. pourriez-vous donner plus d'explications à ce sujet? dois-je utiliser cette ligne que vous avez donnée pour corriger le code? –

+0

e2 n'est pas un simple caractère ASCII, il ne devrait donc pas apparaître dans un script awk. Ce one-liner va simplement vous montrer où ils apparaissent dans votre code afin que vous puissiez les supprimer. Je vois 3 endroits dans le code ci-dessus: le tiret en utilisation - awk, -% d, et $ 2 - first_time – Joe

+0

dans votre sortie xxd, cherchez e2 80 93 dans la partie hexadécimale, qui est montré comme ... dans la partie de texte. Cela indique un UTF-8 en-dash, quand ce que vous avez besoin est un hypen-moins (code hexadécimal 2d) – Joe

1

Regardez votre code, je vois un problème avec - caractère. Certains sont plus longs que l'autre, ce qui signifie qu'ils ne sont pas interprétés correctement.

+0

merci pour le temps. Je les ai changés mais c'est toujours la même erreur que j'ai eue. –

+0

@forgoodGOD Pouvez-vous mettre à jour votre question avec un code modifié? –

+0

merci à tous. J'ai encore modifié le fichier et ne donne pas d'erreur à nouveau, mais il produit un résultat de 0,5 au lieu d'une série de données dans une colonne. –

0

Je suis un débutant à l'écriture de scripts, mais ce n'est pas first_time = graphgran censé être first_time = graphgran Je veux dire sans espace?

Questions connexes