如何修改我的代码,添加选项以获取输出的行号
这是我的输入
输入文件
39589 39461 3 2835 2.97 2.97
39591 39461 3 2835 3.90 3.89
39591 40071 3 2835 3.38 9.00
39595 39953 3 2835 3.91 3.91
39601 39593 3 2836 3.50 17.00
39603 38669 3 2836 3.43 3.43
39603 39233 3 2836 4.03 8.00
我的代码
awk 'BEGIN{
DASHES = sprintf ("%0*d",57, _)
gsub (/0/, "-", DASHES)
print DASHES
printf("%8s%12s%9s%14s%14s \n","ID/ID","XCode","ID","Code-OK(m)","Co
print DASHES
}
{
diff=sqrt(($5-$6)^2)
if(diff > 3.8) printf("%5s %5s %6d %10d %10.2f %14.2f\n",$1,$2,$3,$4,$
}
END{
print DASHES
}' file
我的输出
---------------------------------------------------------
ID/ID XCode ID Code-OK(m) Code-Bad(m)
---------------------------------------------------------
39591 40071 3 2835 3.38 9.00
39601 39593 3 2836 3.50 17.00
39603 39233 3 2836 4.03 8.00
---------------------------------------------------------
输出所需
---------------------------------------------------------
ID/ID XCode ID Code-OK(m) Code-Bad(m)
---------------------------------------------------------
1 39591 40071 3 2835 3.38 9.00
2 39601 39593 3 2836 3.50 17.00
3 39603 39233 3 2836 4.03 8.00
---------------------------------------------------------
行数可以达到4挖,这就是我为行号保留5个空格的原因。
提前致谢
答案 0 :(得分:5)
...
($5-$6)^2 > 3.8^2 {
printf("%d %5s %5s %6d %10d %10.2f %14.2f\n",++count,$1,$2,$3,...
}
...
你可以通过比较平方值来消除平方根,也可以将条件移出语句块。