使用awk读取更多文件,怎么样?

时间:2012-07-09 12:06:19

标签: awk

我想用awk阅读更多输入文件。在我的文件夹中以ftp_dst_开头的每个文件中,我想运行这个小awk脚本。

for i in ftp_dst_*; 
    do

gawk -v a="$a" -v b="$b" -v fa="$fa" -v fb="$fb" -v max="$max" '
BEGIN{
        FS=" ";
        OFS="\t";
    }
    {
        if ($8 == "nrecvdatabytes_")
        {
                b=a;
                a=$1;           

                if (b!=0)
                {               
                fa=a-b; 
                    if (fa>max && fa!=0)
                    {
                        max=fa;
                    }   
                }           
        }   
    }
    END{
        print "lol";
        #print flowid, max;
    }
'./ftp_dst_*
done

所以现在ftp_dst_5,ftp_dst_6,ftp_dst_7都在文件夹中,所以我应该在命令行中获得3行lol。当然这个“打印lol”只是一个尝试,我想从3个文件中获得3个值。 那么如何使用awk从所有​​这些文件中读取?

1 个答案:

答案 0 :(得分:0)

通过在参数中使用glob,所有文件一起被视为一个文件。如果没有shell for循环,您将获得一次输出。由于你有for循环,你应该得到输出三次。部分问题可能是您在结束单引号后需要一个空格,或者您可能需要将参数更改为"$i",如KarlNordström建议您是否希望单独考虑每个文件。