Чтобы отфильтровать любое сообщение в одном grep, установите расширенный флаг регулярного выражения -E
(для «ноль или один раз» значение ?
ниже) и обратное совпадение -v
:
grep -Ev '^Remote:( Checking segments [[:digit:]]{1,3}\.[[:digit:]]%)?$'
, которое говорит, что строки должны (обратные) совпадать:
^
Удаленный:
(
... )
набор символов (с начальным пробелом) Проверка сегментов ...
, соответствует либо ноль, либо один раз с: ?
[[: digit:]]
указано соответствие между 1 и 3 цифрами, за которыми следует точка, за которой следует одна цифра , а затем символ %
$
После дальнейшего уточнения из OP окончательный grep выглядит так:
grep -Ev "^Remote:\s*(Checking segments.*)?$"
который удаляет любую строку соответствие (начиная с начала ^
строки), слово «Remote:», затем любое (или нет) am количество пробелов, затем либо:
ничего, либо
сама фраза «Проверка сегментов», за которой следуют любые (или нет) символы . *
... и затем конец строки $