Inserir espaço entre o dígito e o alfabeto na coluna específica

1

Como insiro um espaço entre os dígitos da coluna 5 e os alfabetos, o código de erro deve ser assim: %código% 554 RTR:BL

Timestamp:    EmailTo:          EmailFrom:         IPAddress:      ErrorCodes:
2016-06-19  [email protected] [email protected]  16.23.29.141     554RTR:BL
2016-06-20  [email protected] [email protected] 13.43.219.141    421MFF:MT
    
por blaCkninJa 04.08.2016 / 08:25

1 resposta

1

Supondo que haverá um total de 3 dígitos na quinta coluna, usando o GNU sed , você pode fazer algo como

sed -r 's/([^\s]*\s){5}[0-9]{3}/& /' filename

Amostra:

$ sed -r 's/([^\s]*\s){5}[0-9]{3}/& /' filename

Timestamp:    EmailTo:          EmailFrom:         IPAddress:      ErrorCodes:
2016-06-19  [email protected] [email protected]  16.23.29.141     554 RTR:BL
2016-06-20  [email protected] [email protected] 13.43.219.141    421 MFF:MT

Explicação:

  • Os primeiros cinco campos são descritos por zero ou mais caracteres que não são separados por espaço [^\s]* seguido por espaço.

  • O código de erro é descrito pelos primeiros 3 dígitos seguidos pelos alfabetos. A substituição é tudo o que corresponde a & com um espaço adicionado posteriormente.

por 04.08.2016 / 08:56