Grep regex não funciona [duplicado]

1

Estou criando um comando grep simples que obtém apenas as últimas pessoas conectadas cujo nome de usuário começa com 161 e tem 3 dígitos ao lado dele:

last | grep "^161[0-9]{3}"

No entanto, ele não imprime nada, mesmo que tenha esses nomes de usuário na lista. O que é ainda mais estranho é se eu fizer egrep em vez de grep

last | egrep "^161[0-9]{3}"

O comando funciona.

Alguém pode explicar qual é a diferença?

    
por David Mathers 02.06.2018 / 00:05

1 resposta

2

Como a steeldriver já apontou, grep usa expressões regulares básicas, enquanto grep -E e egrep usam expressões regulares estendidas.

last | grep  '^161[0-9]\{3\}'
last | egrep '^161[0-9]{3}'
    
por 02.06.2018 / 00:23

Tags