Em primeiro lugar, a maneira mais fácil de fazer isso é com outras ferramentas, por exemplo, cut -d: -f2 20180213.tmp
, awk -F: '{print $2}' 20180213.tmp
.
No entanto, eu também queria explicar por que o método grep
falha. Isso ocorre porque corresponde a todas as strings após um :
. Para corrigi-lo, você pode combinar o primeiro :
no regex com apenas o primeiro na linha processada, adicionando ^[^\:]*
na frente dele. Portanto, qualquer caractere anterior à sua regex original não pode ser :
. O comando completo é:
grep -oP '^[^\:]*\:\K[^\:]+' 20180213.tmp
Observe também que você não precisa escapar de :
na regex, para simplificar ainda mais com:
grep -oP '^[^:]*:\K[^:]+' 20180213.tmp