我用AWK脚本创建了一个Bash脚本来读取网络ping文件,然后计算TCP协议获取的参数如超时和估计的RTT。“awk fatal无法打开文件进行读取(没有这样的文件或目录)”在for循环bash脚本中
我将它插入到for循环中以读取文件夹中的所有文件,但会引发无法读取的错误。这里是代码:
for f in *.txt
do awk '
function abs(v) {return v < 0 ? -v : v}
BEGIN {
alpha=0.125;
beta=0.25;
}
FNR == 1 {
sampleRTT=$1;
estimatedRTT=SampleRTT;
devRTT=0.0000;
timeoutInterval=EstimatedRTT;
printf("%f\t%f\t%f\n", sampleRTT, estimatedRTT, timeoutInterval)}
FNR > 1{
sampleRTT=$1
estimatedRTT=((1-alpha)*estimatedRTT)+(alpha*sampleRTT);
devRTT=((1-beta)*devRTT)+(beta*(abs(sampleRTT-estimatedRTT)));
timeoutInterval=estimatedRTT+(4*devRTT);
printf("%f\t%f\t%f\n", sampleRTT, estimatedRTT, timeoutInterval)}' %f
done
我试过使用$ f,'$ f'和“$ f”。没有作品。只需一次读取单个文件即可。我没有删除这些文件,也没有在另一个文件夹中运行该脚本。
尝试用双引号括住'$ f':'“$ f”' –
Alredy尝试过。不起作用。 – MasterGeekMX
它必须!尝试在'awk'之前添加'echo'$ f“;'... –