Как получить абзац для определенной опции команды сразу же?

Например, вместо целого руководства apt-get Я хочу переход к -f опция от терминальной подсказки сразу же, без использования перерывают страницу справочника.

8
задан 31 March 2017 в 05:47

3 ответа

пейджер по умолчанию, используемый man - меньше . Вы можете передать шаблон поиска ERE (Extended Regular Expression), который less понимает непосредственно к нему через переменную окружения LESS, в случае, если нужно сделать следующее:

LESS='+/-f' man apt-get

Это точно то же самое, что и передача /-f после выполнения man apt-get.

Теперь это выделит все -fs на странице man, чтобы перейти прямо к нужному, т.е. опция -f, вы можете использовать ERE, чтобы сопоставить только те строки, которые начинаются с пробелов/заполнителей, за которыми следует -f:

LESS='+/^[[:blank:]]+-f' man apt-get

Хотя это будет сделано здесь, но все же может быть не точно для всех страниц, так как это будет соответствовать всему, что начинается с -f после начальных пробелов/заполнителей. Немного подкорректируйте паттерн, чтобы удовлетворить ваши потребности в этих случаях.

Можно создать крошечную функцию для передачи паттерна поиска и страницы man для поиска в качестве аргументов, если вы делаете это часто.

6
ответ дан 23 November 2019 в 05:27

Введите прямой слэш, то, что вы ищете, а затем нажмите enter. Вы перейдете к первому вхождению. Нажмите N, чтобы перейти к следующему вхождению, и B, чтобы вернуться назад. Итак, в данном случае:

/-f <enter>
9
ответ дан 23 November 2019 в 05:27

Используйте sed, чтобы показать весь абзац опции, начинающийся с дефиса. Чтобы показать весь абзац опции -f сразу, запустив одну команду, используйте:

man apt-get | sed -n '/-f,/,/^$/p'
   -f-,--no-f, -f=no or several other variations.

   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken.  

Это возвращает весь абзац опции -f в man apt-get, но вышеприведенную команду можно улучшить, устранив запятую после -f, чтобы сделать ее более полезной следующим образом:

man apt-get | sed -n '/-f/,/^$/p'

Это возвращает несколько абзацев, большинство из которых вы не захотите прочитать. Читая первые строки нескольких параграфов, вы можете увидеть, что вы хотите показать только параграф, содержащий опцию -f, --fix-broken. Сделайте это следующим образом:

man apt-get | sed -n '/--fix-broken/,/^$/p'
   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken. 

Это вернет только вывод, который вы хотите прочитать. Этот метод работает с любыми другими опциями, которые начинаются с дефиса, а также в целом работает для поиска опций, которые начинаются с дефиса в других командах, кроме только apt-get.

Показывая дополнительную информацию с помощью sed

Если описание одного абзаца не дает достаточной информации, следующая команда покажет первый абзац, как и предыдущая команда, и следующие за ней абзацы тоже.

LESS='+/^[[:space:]]*-f' man apt-get  

Результаты этой команды показывают, что следующие абзацы не очень интересны, но для некоторых опций интересны также и следующие абзацы. Поэтому эту команду также полезно знать.

1
ответ дан 23 November 2019 в 05:27

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

Похожие вопросы: