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

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

1
задан 31 March 2017 в 15:47

2 ответа

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

/-f <enter>
9
ответ дан 23 May 2018 в 00:06
  • 1
    Попробуйте добавить пару пробелов перед тире. В большинстве случаев параметры имеют отступы и должны перейти прямо к опции: / -f. Это должно обойти любые встроенные функции -f. – transistor1 31 March 2017 в 22:29

Используйте 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 [ ! d4]

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

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

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

2
ответ дан 23 May 2018 в 00:06

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

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