Acho que isso deve ser feito:
grep -E '([5-9][0-9]{3}|[0-9]{5,})ms' | grep -v 5000ms
Como funciona?
- Ele usa
-E
, então o regex é do formato "moderno" (também chamado de estendido). Isso torna a digitação mais fácil no nosso caso, já que podemos salvar alguns\
chars. - O
(...|...)ms
procura duas alternativas seguidas pela stringms
. Isso é necessário porque regex não pode comparar números, então eu não posso dizer algo como>= 5000
. - A primeira alternativa é
[5-9][0-9]{3}
, que corresponderá a qualquer string que comece com um número de 5 a 9 seguido por 3 ocorrências de números de 0 a 9. Esses são todos os números > = 5000 e < 10000. - A segunda alternativa corresponderá a uma string de 5 ou mais dígitos, ou seja, qualquer número > = 10000.
- No final, enviamos o resultado para
grep -v 5000ms
para filtrar qualquer ocorrência de5000ms
porque você disse maior que 5000. Se quiser maior ou igual, deixe isso de lado.
Onde aprender mais?
Leia man 1 grep
e man 7 regex
.