Что делает `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 будет показывать предыдущую и следующую строки для каждого совпадения, в дополнение к самой совпадающей строке.