Faça 3 colunas de bytes presentes no texto usando comandos shell

0

Eu tenho um arquivo input.txt , que contém vários parágrafos conforme abaixo:

[730480.910190] [MACSTATUSIND] ACTIND_ParseMACSTATUS:
[730480.910205] fe 0a 39 01 0a 00 51 e7 ba 9d c7 0d 00 00 00 00  ..9...Q....
[730480.910220] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ...........
[730480.910233] 00 00 00 00 00 00 00 00 00 00 xx xx xx xx xx xx  .....:bC.B.
[730480.910247] xx xx yy yy yy yy yy yy zz zz 64 34 e8 ff 00 00  ......d4...

[730480.910190] [MACSTATUSIND] ACTIND_ParseMACSTATUS:
[730480.910205] fe 0a 39 01 0a 00 51 e7 ba 9d c7 0d 00 00 00 00  ..9...Q....
[730480.910220] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ...........
[730480.910233] 00 00 00 00 00 00 00 00 00 00 aa bb cc dd ee ff .....:bC.B.
[730480.910247] gg hh ii jj kk ll mm nn oo pp 64 34 e8 ff 00 00  ......d4...

a partir dos dados acima, para cada parágrafo eu quero fazer três colunas e, em seguida, armazenar essas linhas em um arquivo diferente / novo new.txt .

Saída: new.txt

   col1    col2     col3
  -------  ----    ------
xxxxxxxx   | yyyyyy |  zzzz
aabb..gghh | ii..nn |  oopp       

Nota : O log de parágrafos acima é repetido no arquivo várias vezes. Todos os parágrafos devem ter padrão inicial com [MACSTATUSIND] ACTIND_ParseMACSTATUS:

    
por Santosh Sahu 08.01.2018 / 08:32

1 resposta

0

awk 'BEGIN { print "     col1        |     col2     | col3" }
    /^\[730480.910233\] / {SA = $12 $13 $14 $15 $16 $17}
    /^\[730480.910247\] / { print SA $2 $3 " | " $4 $5 $6 $7 $8 $9 " | " $10 $11}
'  input.txt > new.txt
    
por 08.01.2018 / 11:56