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) Если нет, то как мне поступить с загрузкой кодировки, которая их поддерживает, или выборочно отфильтровав их из файла?
Любая помощь, которую вы можете оказать, будет принята с благодарностью.
Примечание: я скачал и установил юникод, думая, что смогу использовать его, чтобы найти подходящую кодировку, но без удачи (думаю, я просто пока не знаю, как его использовать, лично)
Несколько вещей. Давайте запустимся с Вашего подхода к получению всех этих страниц справочника. Позволить 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).
Существует много серьезных проблем, делающих его тот путь. Я замечаю, что, когда я выполняю это, это заставляет терминал выкладывать тонны ошибок в секунду. Лучший путь состоял бы в том, чтобы сделать это как это:
for binary in $(ls /bin); do man -a $binary >> ~/binMan.txt; done
Однако я думаю, что было бы лучше при создании файла на программу которая в этом случае могла быть достигнута как:
for binary in $(ls /bin); do man -a $binary > ~/$binary.txt; done