Добавить номер строки в выходной файл - PullRequest
0 голосов
/ 30 мая 2018

Как изменить мой код, добавив опцию для получения номера строки на выходе

Здесь мои входные данные

Входной файл

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 голосов
/ 30 мая 2018
...                                                                     
($5-$6)^2 > 3.8^2  {                                                 
      printf("%d %5s %5s %6d %10d %10.2f %14.2f\n",++count,$1,$2,$3,...
}  
...

Вы можете удалить квадратный корень, сравнивая квадратные значения, а также переместить условие из блока операторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...