表达式中的字符''无效

时间:2013-06-11 13:16:09

标签: awk gawk throughput

一天的最重要。我已经检查了其他相似的错误或相同的错误代码。他们似乎不一样。我需要你的帮助。全部

# 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;
}

出现错误

  

awk:myflowcalcall.awk:20:if(($ 2 - first_time)&gt; measure_interval){   awk:myflowcalcall.awk:20:^表达式中的char'invalid'无效

我已经尝试并检查了错误,但无济于事。下面是我在Ubuntu 12.04LTS中从终端运行的命令

  

awk -f myflowcalcall.awk -v graphgran = 0 -v fidfrom = 2 -v fidto = 3 -v fid = 1 -v flowtype =“cbr”-v outdata_file =“nothing”johna4bp.tr&gt; THR1

运行

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

制作

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

我可能知道错误点。谢谢所有

3 个答案:

答案 0 :(得分:1)

查看您的代码,我确实看到了-字符的问题。有些比另一些长,这意味着它们没有被正确解释。

答案 1 :(得分:0)

您似乎在某些时候使用了一个支持unicode的编辑器,用一些类似的多字节字符替换了一些简单的字符。

引号和短划线替换的代码以e2开头,尝试

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

找到他们

答案 2 :(得分:0)

我是脚本的新手,但不是first_time = graphgran应该是first_time = graphgran  我的意思是没有空格?