将行号添加到输出文件

时间:2018-05-29 21:01:38

标签: awk

如何修改我的代码,添加选项以获取输出的行号

这是我的输入

输入文件

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个空格的原因。

提前致谢

1 个答案:

答案 0 :(得分:5)

...                                                                     
($5-$6)^2 > 3.8^2  {                                                 
      printf("%d %5s %5s %6d %10d %10.2f %14.2f\n",++count,$1,$2,$3,...
}  
...

你可以通过比较平方值来消除平方根,也可以将条件移出语句块。