我想用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从所有这些文件中读取?
答案 0 :(得分:0)
通过在参数中使用glob,所有文件一起被视为一个文件。如果没有shell for
循环,您将获得一次输出。由于你有for
循环,你应该得到输出三次。部分问题可能是您在结束单引号后需要一个空格,或者您可能需要将参数更改为"$i"
,如KarlNordström建议您是否希望单独考虑每个文件。