Regex - captura seqüência de caracteres após timestamp

1

Procurando por um Regex eficiente para capturar a sequência de caracteres seguindo o registro de data e hora da seguinte forma:

<38>Oct 10 14:32:29 UAT01 
<86>Oct 10 14:32:29 Test04 
<13>Oct 10 14:35:09 Dev02
<13>Oct 10 14:35:10 Test03
    
por Heisenberg 10.10.2018 / 22:28

1 resposta

1

Dado que a pergunta é pedir um regex especificamente:

grep -Eo '\s(\w+).$' file

 UAT01 
 Test04 
 Dev02
 Test0

Explicação:

'\s' matches any whitespace character.
'(\w+)' is the first Capturing Group 
 '\w+' matches any word character  and it is equal to [a-zA-Z0-9_]
 '+ ' Quantifier — Matches between one and unlimited times, as many times as possible.
 '.' matches any character (except for line terminators)
 '$' asserts position at the end of the string, or before the line terminator right at the end of the string.

As últimas strings podem ser extraídas com muito mais facilidade usando cut ou awk

cut -d' ' -f 7 file

awk '{print $7}' file
    
por 10.10.2018 / 23:47