Para filtrar uma mensagem em um grep, insira o sinalizador de expressão regular estendida -E
(para o significado "zero ou uma vez" de ?
abaixo) e a correspondência inversa -v
:
grep -Ev '^Remote:( Checking segments [[:digit:]]{1,3}\.[[:digit:]]%)?$'
que diz que as linhas devem (inversamente) corresponder:
- início da linha
^
- a string
Remote:
- o grupo
(
...)
agrupado de caracteres (com espaço à esquerda)Checking segments ...
, correspondido com zero ou uma vez com:?
- a seção
[[:digit:]]
diz para corresponder entre 1 e 3 dígitos, seguido por um ponto, seguido por um dígito e, em seguida, o símbolo%
- todos ancorados no final da linha
$
Após mais esclarecimentos do OP, o grep final se parece com:
grep -Ev "^Remote:\s*(Checking segments.*)?$"
O que remove qualquer correspondência de linha (começando no início ^
da linha), a palavra "Remoto:" e, em seguida, qualquer (ou nenhuma) quantidade de espaço em branco, então:
-
nada ou
-
a frase "Verificando os segmentos", seguida por qualquer (ou nenhum) caractere
.*
... e depois o fim da linha $