Assumindo que seus números sejam sempre inteiros positivos sem unidade, sinais de adição unários ou outras decorações.
Expressões regulares não são ótimas para comparar números, mas se você vir seus dados de entrada como duas colunas separadas por :
, seria mais fácil manipulá-las com awk
:
awk -F ':' '$2 >= 100 && $2 <= 199' <file
Isso compararia o segundo campo :
-separated nos dados para 100 e 199 e imprimiria a linha completa se o número estivesse dentro do intervalo determinado.
Também é possível com grep
, mas não é tão flexível:
grep ':1[0-9][0-9]$' <file
A expressão [0-9]
corresponde a um único caractere entre 0
e 9
. O $
ancora a expressão ao final da linha.
Se você quisesse combinar linhas com os números de 100 a 250, alteraria apenas 199
no código awk
para 250
, mas com uma expressão regular você precisaria criar
grep -E ':(1[0-9][0-9]|2[0-4][0-9]|250)$' <file
Aqui, as três partes do parênteses correspondem a números de 100 a 199, depois de 200 a 249 e, por último, de 250. (Digo "números", mas expressões regulares sempre operam em strings ) .