Há vários pontos a serem feitos sobre as expressões que você está tentando: -
- Quando você usa
.
, isso corresponderá a qualquer caractere único: para corresponder a.
, ele precisa ser salvo como em"10\.85\.1\.[1-5]"
. - Se o arquivo descompactado for binário (como
-a
implica), não será possível assumir que o fim de linha será tratado corretamente. - Você pode usar
"10\.85\.1\.[1-5][^0-9]"
, ou seja, sequência de pesquisa seguida por um caractere não numérico, mas isso falhará no final de linha, quando não houver nenhum caractere a seguir. -
A resposta é usar os delimitadores de palavras
\<
e\>
:zegrep -ai "\<10\.85\.1\.[1-5]\>" *.tgz
Ao adicionar o \<
à esquerda, você evita discordâncias com os gostos de 110.85.1.1
.
Dependendo da sua versão das expressões regulares, talvez seja necessário usar o delimitador alternativo \b
:
zegrep -ai "\b10\.85\.1\.[1-5]\b" *.tgz