Как найти определенный переключатель на странице руководства

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

http://upstart.ubuntu.com/cookbook/#restart

1
задан 14 June 2014 в 22:07

9 ответов

Введите следующую команду на терминале:

man grep

Затем введите символ косой черты, / и введите ваш поиск, например -i, а затем нажмите Enter. Это поместит курсор в первое вхождение строки поиска. Нажатие кнопки n перемещает курсор на следующее вхождение. Нажатие клавиши Shift + n перемещает курсор в предыдущее вхождение.

21
ответ дан 24 May 2018 в 07:53
  • 1
    Он найдет все -i на странице man grep. Но OP хочет только описание, связанное с флагом -i на странице руководства. – Avinash Raj 11 May 2014 в 17:57
  • 2
    @AvinashRaj нет, он позволит вам циклически перебирать каждое событие -i. Это именно то, чего хочет OP. – terdon♦ 11 May 2014 в 18:02

В то время как самый простой подход - поиск с помощью /, предложенный @girardengo, вы также можете использовать grep вместо sed, который я нахожу более простым:

$ man grep | grep -A 1 '^ *-i'
   -i, --ignore-case
          Ignore  case  distinctions  in  both  the  PATTERN and the input
          files.  (-i is specified by POSIX.)

Средство -A N означает «Распечатайте N строк после соответствующего совпадения. Просто трюк, чтобы получить следующие несколько строк, похожие на подход Авинаша sed.

8
ответ дан 24 May 2018 в 07:53

Вы можете использовать функцию поиска внутри man, просто pres "s", введите ключ, который вы ищете, (-i в вашем случае) и нажмите ввод.

3
ответ дан 24 May 2018 в 07:53
  • 1
    Я печатаю man grep после того, как я нажимаю s после этого, я вижу файл журнала: после этого я набираю -i и ENTER, но я не вижу описания. Или есть что-то, что я не знаю – Mohammad Reza Rezwani 11 May 2014 в 17:27

Или вы можете позволить этому сайту выполнить поиск:

http://explainshell.com/explain?cmd=grep+-i

Вам нужно переключиться с используя терминал для браузера, но есть http://explainshell.com/explain?cmd=grep+-i тоже.

3
ответ дан 24 May 2018 в 07:53

Самый эффективный метод, о котором я знаю, - это поиск справочной страницы для -i (этот сайт, похоже, не смог отобразить мой код. Я имею в виду <space><space><space>-i). Это 3 пробела (вам может потребоваться больше / меньше пробелов), а затем флаг, который вы ищете. Это почти всегда работает в моем опыте, и вы можете изменить его на какой-то его вариант в тех случаях, когда он не работает.

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

2
ответ дан 24 May 2018 в 07:53

Через все ответы могут быть прекрасными, но я думаю, что вы фокусируетесь только на части документации, а не на всех. Например, чтобы найти переключатель -i документации grep:

info grep Invoking Command-line\ Options Matching\ Control

Я найду всю информацию о «grep», как «вызывать» конкретные «параметры командной строки» для «контроль соответствия». К сожалению, это не идет более глубоко, чем это, но у него есть -i, -y, --ignore-case в первых 25 строках, что-то разумное, что вам не нужно прокручивать весь ваш путь вниз.

Это решение является более гибким, а также позволяет вам искать все инфопакеты:

info --apropos=--ignore-case
"(coreutils)join invocation" -- --ignore-case <1>
"(coreutils)uniq invocation" -- --ignore-case <2>
"(coreutils)sort invocation" -- --ignore-case
"(gettext)msggrep Invocation" -- --ignore-case, ‘msggrep’ option
"(grep)Matching Control" -- --ignore-case

(вместо -i вместо -i ему пришлось использовать --ignore-case, но вы можете просто обрабатывайте вывод на информацию в любом случае)

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

1
ответ дан 24 May 2018 в 07:53

Вы можете использовать Perl и его «режим абзаца», чтобы извлечь только соответствующий абзац:

man grep | perl -00 -ne 'print if / -i/'
1
ответ дан 24 May 2018 в 07:53

Мой любимый подход к поиску данной опции на странице man - использовать регулярное выражение, подобное \s{2,}-option. Для рассматриваемого вопроса вы можете сделать man grep, а затем ввести регулярное выражение:

/\s{3,}-i

или

/ {3,}-i
 ^------------- space here

Это будет соответствовать -i только тогда, когда последуют три или больше пробелов.

1
ответ дан 24 May 2018 в 07:53

Поскольку less используется по умолчанию в качестве пейджера для man, вы можете использовать переменную среды LESS для передачи шаблона для поиска, когда less открывает страницу. Это идентично выполнению, например, man ls, а затем выполните поиск опции --all или -a, введя /, а затем введите шаблон, например. --all или -a.

Все это может быть выполнено:

LESS='+/--all' man ls

Или

LESS='+/-a' man ls

Введите то, что вы хотите найти после /.

Предположительно это лучше всего подходит для длинных опций (например, --all) по сравнению с короткими (например, -a).

0
ответ дан 24 May 2018 в 07:53

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

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