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}'
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?