Analisando mensagens FIX para análises adicionais

2

Atualmente estou tentando analisar minhas mensagens FIX para obter duas colunas mostrando a moeda (tag55) e o preço (tag133), mas tendo dificuldade em usar 'awk' quando aparece, a parte desejada da mensagem não é dividida em colunas ( em negrito para sua referência). Alguma idéia de como realizar isso?

FIX log example:
03:55:16.128 incoming           20180528-07:55:16.015           8587130         11891           8587030         S                  **8=FIX.4.29=013535=S49=IUAT2Feed56=FixServer50=IUAT2Feed_Offers34=858713052=20180528-07:55:16.015117=055=NOK/SEK7225=7133=1.0735135=2100000010=159**
03:55:16.128 incoming           20180528-07:55:16.015           8587131         11891           8587030         S                  **8=FIX.4.29=013435=S49=IUAT2Feed56=FixServer50=IUAT2Feed_Offers34=858713152=20180528-07:55:16.015117=055=USD/CNH7225=2133=6.3872135=300000010=110**

Saída desejada:

NOK/SEK 1.0735
USD/CNH 6.3872
    
por Degurube 28.05.2018 / 10:09

2 respostas

0

  perl -F= -pale '$_ = sprintf "%.7s %.4f", @F[-5,-3]'   fix.log

¶ como funciona:

 °  split each line as it comes on equal to sign. Store the split values in the array @F

 °  counting from the end of the array @F, the last but 4th  and last but 2nd fields are what we need.

 °  we require the 7 chars and accuracy upto 4 digits.

 °  stuff these in $_ and -p option auto prints it. 
    
por 29.05.2018 / 02:57
0

Seguir awk pode ajudá-lo aqui.

awk -F"=" '{sub(/[0-9]+/,"",$(NF-4));print $(NF-4),$(NF-2)+0}' OFMT="%.05g"  Input_file
    
por 29.05.2018 / 09:15