我用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「;'... –