Forum Pplware
Regex - Perl - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: Regex - Perl (/showthread.php?tid=22223)



Regex - Perl - Jonas - 18-04-2016 23:13

Boas

Estou a fazer uns testes do desempenho de equipamentos de redes, mais concretamente UTM's, com o iPerf , para publicar um artigo de comparação do desempenho entre várias UTM's em vários cenários.

O iPerf está a fazer muitas repetições com vários tipos de amostras, onde são gerados ficheiros com mais de 15.000 linhas de resultados.

Ao tentar retirar os dados de amostras da penúltima linha do exemplo, não estou a conseguir juntar as duas ultima num só regex no script em perl. Isto pois as anteriores são idênticas à penúltima e se o regex não apanhar a última linha do exemplo onde diz "Sent", apanha as anteriores e esse não é o objetivo.

[  4]   9.80-9.90   sec  10.0 MBytes  839597 Kbits/sec  0.005 ms  6/20998 (0.029%)  
[  4]   9.90-10.00  sec  9.90 MBytes  830300 Kbits/sec  0.006 ms  240/20995 (1%)  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-10.00  sec  1005 MBytes  843066 Kbits/sec  0.005 ms  20155/2107663 (0.96%)  
[  4] Sent 2107663 datagrams

Tenho utilizado este site como ajuda para realizar os regex's, (http://regexr.com/), mas quando coloco o regex no script, o perl não detecta mais a partir da \n.

\[\s+\d\]\s+\d*.\d*-(\d*.\d+)\s+\w+\s+(\d+.\d+)\s+\w+\s+(\d+)\s+\w+\/\w+\s+\d+.\d+\s+\w+\s+\d+\/\d+\s+\(\d.*\d+\%\)\s*\n\[\s*\d\]\s*Sent/m

Pelo que já pesquisei, experimentei colocar o 'm' para multiplas linhas, o '$' no início e nada.

Se alguém souber alguma dica ou maneira diferente de tirar os resultados fico agradecido.

Obrigado pela atenção