Что делает `grep -1`?

Я пытаюсь разобраться в следующей команде оболочки, чтобы получить список пакетов, которые можно обновить:

dpkg --get-selections | xargs apt-cache policy {} | grep -1 Installed | sed -r 's/(:|Installed: |Candidate: )//' | uniq -u | tac | sed '/--/I,+1 d' | tac | sed '$d' | sed -n 1~2p

Что значит grep -1 имею в виду? Я не могу найти упоминания о -1 в справочной странице grep, или где-то еще в Интернете.

3 ответа

-1 опция - это традиционная опция стиля Unix, чтобы указать, что вы хотите grep включать 1 строка дополнительного текста для соответствия контексту.

Если вы делаете man grep и найдите заголовок Контроля строки контекста, в котором вы найдете варианты, которые описывают различные способы запроса дополнительных строк контекста. В частности, на ваш вопрос вы увидите:

    -C NUM, -NUM, --context=NUM
        Print NUM lines of output context.  Places a line  containing  a
        group separator (--) between contiguous groups of matches.  With
        the -o or --only-matching option,  this  has  no  effect  and  a
        warning is given.

это где -1 задокументировано (как -NUM где NUM равно 1), поэтому все следующие команды будут вести себя одинаково: grep -1 или же grep -C 1 или же grep --context=1

Это ничего не называется grep -1, если вы идете в терминал и введите grep --help ты не находишь grep -1

Мне удалось решить это, посмотрев на результаты. Он указывает, сколько предыдущих и последующих строк ("контекста") показывать для каждого совпадения. Таким образом, в данном конкретном случае grep будет показывать предыдущую и следующую строки для каждого совпадения, в дополнение к самой совпадающей строке.

Другие вопросы по тегам