1

我想用 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 的行。当然这个“打印大声笑”只是一个尝试,我想从 3 个文件中获取 3 个值。那么如何使用 awk 从所有这些文件中读取呢?

4

1 回答 1

0

通过在参数中使用 glob,所有文件都被放在一起,就好像它们是一个文件一样。如果没有 shellfor循环,您将获得一次输出。既然你有for循环,你应该得到三倍的输出。"$i"您的部分问题可能是在单引号结束后需要一个空格,或者如果您希望单独考虑每个文件,您可能需要将参数更改为 Karl Nordström 建议的那样。

于 2012-07-09T14:00:59.923 回答