Как сбросить справочную страницу?


46

Как я могу «кошачьи» справочную страницу, как я бы «кошачий» файл, чтобы получить только дамп содержимого?

Ответы:


41

Прежде всего, файлы man обычно представляют собой просто текстовые файлы gziped где-то в вашей файловой системе. Так как ваш поиск будет различаться, и вы, вероятно, хотели получить обработанную и отформатированную версию, которую вам даст человек вместо источника, вы можете просто сбросить их с помощью manинструмента. Посмотрев man man, я вижу, что вы можете изменить программу, используемую для просмотра man-страниц, с таким -Pфлагом:

man -P cat command_name

Кроме того, ничего не стоит, что manавтоматически обнаруживает, когда вы выводите на экран его вывод, а не просматриваете его на экране, поэтому, если вы собираетесь обрабатывать его чем-то другим, вы можете сразу перейти к этому шагу следующим образом:

man command_name | grep search_string

или сбросить в файл:

man command_name > formatted_man_page.txt

1
использование -P не делает выходной файл аккуратно читаемым. Это набросано всеми символами ctrl-H. Я раньше делал man cmd>! man.cmd и откройте man.cmd и выполните «% s / ^ H .// g», чтобы удалить надоедливые управляющие символы для представления жирного шрифта и курсива. Но это все еще имеет некоторую проблему, когда есть другие специальные символы. Я все еще ищу хороший метод, чтобы избежать ручного редактирования вывода.
— Чан Ким

@ChanKim Вы делаете что-то не так или вам мешает нестандартная конфигурация, потому что оба метода на самом деле производят чистый вывод, отформатированный в виде обычного текста без дополнительных управляющих символов. Вы уверены, что manв вашей оболочке нет псевдонимов или флагов, которые отделяют вашу функцию от обычной man?
— Калеб

1
@ Калеб, я подтверждаю проблему ОП. Выпуск CentOS 6.7 (Final), / usr / bin / man gcc> j, отредактируйте 'j', все ctrl-H там. Лучший ответ, который я нашел, находится на commandlinefu.com/commands/view/2417/…
— Чарльз Рот

1
man command_name > formatted_man_page.txtвызовет некоторое слово дубликат.
— Зиги Вонг

52

Чтобы получить файл справочной страницы ASCII, без назойливых попыток подчеркивания / подчеркивания на заднем плане и странных последовательностей, чтобы сделать жирным шрифтом:

man ksh | col -b > ksh.txt

6
Вы заслуживаете больше голосов
— Labo

2
Привет, почему вывод man piped содержит повторяющиеся символы? и как col -b удаляет его? Заранее спасибо.
— saurabheights

2
@saurabheights - человек пытается сделать подчеркивание и полужирный текст и, возможно, некоторые другие вещи с помощью символов возврата, дублирования символов, escape-последовательностей и т. д. как текст на терминале. Я не читал исходный текст col, но он, вероятно, просто проверяет байты stdin и не передает символы возврата и т. Д. В stdout. Страница man col читается так, как будто кто-то написал ее специально для фильтрации вывода man.
— Брюс Эдигер

1
хорошо, это имеет смысл. Такие символы (скрытые) могут вызвать дублирование символов. Спасибо, Брюс.
— saurabheights

Вы действительно заслуживаете модного отката. Есть ли "col" для столбца?
— алгебра

24

Страницы troffруководства обычно представляют собой предварительно обработанные файлы, и вы можете перейти к простому тексту,

groff -t -e -mandoc -Tascii manpage.1 | col -bx > manpage.txt

groffэто обертка для troff.

Больше информации здесь .

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


4
+1 за разговор о groff / troff и о форматировании man-страниц
— lgeorget

11

Я делаю это все время. Эта командная строка делает меня счастливым:

man man | col -bx > man.txt

col -b удаляет пробелы.

col -bx также заменяет табуляцию пробелами, что является моим сильным предпочтением.

Если я хочу, чтобы текст во время чтения форматировался в соответствии с шириной моих предпочтений, я изменяю команду на следующую:

MANWIDTH=10000 man man | col -bx > man.txt

man man | col -bx > man.txtработал на меня. Спасибо.
— JaredH

6

Просто используйте manкоманду - вы можете направить вывод в другие вещи, как вы можете catдля файла.


1
Мне нравится простота.
— Джоэл Шегрен

3

Если вы просто хотите перейти catна man-страницу, вы можете просто отправить ее по адресу cat:

man ls | cat

Если вы хотите вывести его содержимое в файл:

man ls > ls_manpage_dump.txt
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.