Справочная страница Полная внешняя документация pdf или сборка текста

Ubuntu 14.04
man Версия 2.6.7.1
gedit Версия 3.10.4

Я нахожусь в процессе создания полной документации на странице руководства, в настоящее время TXT-файл, возможно, в виде PDF-файла, в конце концов, когда я найду конвертер с разумным форматированием, с конечной целью сделать его доступным для Сообщества в качестве альтернативного, обновляемого ресурса (я определенно видел достаточно вопросов об этом ). Проблема, с которой я столкнулся, заключается в том, что команда, которую я использую для обработки файлов man, возвращает символы вне кодировки, по крайней мере, gedit (еще не пробовал с альтернативными редакторами). Вот мой процесс на данный момент:

alias manGet="sudo apt-get update && sudo apt-get upgrade;man -a /bin/* > binMan.txt && man -a /sbin/* > sbinMan.txt;cat binMan.txt sbinMan.txt > manAll.txt;gedit manAll.txt"
manGet

Оказавшись в gedit, проблемы с кодировкой, как представляется, возникают рядом с разрывами страниц, где будут отображаться довольно длинные серии неотображаемых символов. Итак, два вопроса, по сути:

1) Как мне обновить кодировку символов для отображения этих файлов, если это возможно? 2) Если нет, то как мне поступить с загрузкой кодировки, которая их поддерживает, или выборочно отфильтровав их из файла?

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

Примечание: я скачал и установил юникод, думая, что смогу использовать его, чтобы найти подходящую кодировку, но без удачи (думаю, я просто пока не знаю, как его использовать, лично)

0
задан 2 June 2014 в 02:44

2 ответа

Несколько вещей. Давайте запустимся с Вашего подхода к получению всех этих страниц справочника. Позволить man сделайте это все для Вас с man -k . — мы запустим с более короткого примера:

$ man -k rmdir
rmdir (1)            - remove empty directories
rmdir (1posix)       - remove directories
rmdir (2)            - delete a directory
rmdir (3posix)       - remove a directory

Мы должны проанализировать тот список. Нам нужны команда и раздел, который перенесен в скобках. Мы можем сказать awk разделять это для нас использующий -F аргумент (мы просто говорим это, какие символы наши разделители), и в качестве награды, для сохранения бездельничания с переменными Bash, мы можем иметь awk создайте следующую команду также.

Прежде чем мы доберемся там, мы должны знать то, что управляет, чтобы мы хотели работать. man может генерировать файлы HTML если groff установлен (sudo apt-get install groff). Это - вероятно, самая лучшая идея для Вас прямо сейчас, как это - довольно простое форматирование, которое сохраняется. Это также довольно универсально в эти дни. Мы используем -Hcat сказать этому представлять HTML к команде кошки (это ожидает браузер). 1 существует раздел (см. man man для больше на тех).

man -Hcat 1 rmdir

Таким образом для приведения этой всей спины в чувство давайте иметь awk, разделенный man -k вывод, создайте команду и выполните его в одной небольшой строке:

man -k . | awk -F '[ ()]' '{print "man -Hcat",$3,$1," > "$1"."$3".html" | "/bin/sh"}'

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

man -k rmdir | awk -F '[ ()]' '{print "man -Hcat",$3,$1," > "$1"."$3".html" | "/bin/sh"}'

Это дает мне 4 файла HTML (rmdir.1.html, rmdir.1posix.html, rmdir.2.html и rmdir.3posix.html). Для превращения их в книгу, я настоятельно рекомендую смотреть на htmldoc. Это - и командная строка и графическое приложение. Я предложил бы привыкнуть к графической версии сначала.

И там Вы идете. Все Ваши страницы справочника отсортировали с оглавлением (если Вы хотите его), с форматированием, сохраненным в хорошем выводе документа (HTML или PDF).

1
ответ дан 2 June 2014 в 02:44

Существует много серьезных проблем, делающих его тот путь. Я замечаю, что, когда я выполняю это, это заставляет терминал выкладывать тонны ошибок в секунду. Лучший путь состоял бы в том, чтобы сделать это как это:

for binary in $(ls /bin); do man -a $binary >> ~/binMan.txt; done

Однако я думаю, что было бы лучше при создании файла на программу которая в этом случае могла быть достигнута как:

for binary in $(ls /bin); do man -a $binary > ~/$binary.txt; done
0
ответ дан 2 June 2014 в 02:44

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

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