Як скинути чоловічу сторінку?


45

Як я можу "котити" сторінку "man", як я би "котів" файл, щоб отримати лише дамп вмісту?

Відповіді:


40

Перш за все, файли man, як правило, просто gziped текстові файли десь у вашій файловій системі. Оскільки ваш пробіг буде відрізнятися їх пошуком, і ви, ймовірно, хотіли оброблювану та відформатовану версію, яку надає вам людина замість джерела, ви можете просто скинути їх за допомогою 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
@Caleb, я підтверджую проблему ОП. Випуск CentOS 6.7 (заключний), / usr / bin / man gcc> j, редагуйте 'j', усі ctrl-H є там. Найкраща відповідь, яку я знайшов, - за адресою commandlinefu.com/commands/view/2417/…
Чарльз Рот,

1
man command_name > formatted_man_page.txtпризведе до дублювання слова.
Zigii Wong

52

Щоб отримати файл підручної сторінки ASCII, без дратівливої ​​спроби підкреслення / підкреслення, підкреслення та дивних послідовностей:

man ksh | col -b > ksh.txt

6
Ви заслуговуєте більше upvotes
Labo

2
Привіт, чому man pipeped output містить дублікати символів? і як Col -b видаляє його? Заздалегідь спасибі.
saurabheights

2
@saurabheights - людина намагається робити підкреслення та напівжирний текст, а може, й інші речі із зворотними просторами, дублюючими символами, послідовними повідомленнями тощо тощо. Трюки, які можуть спрацювати, якщо ви надрукуєте вивід людини на крапковій матриці чи іншому принтері, або покажіть це як текст на терміналі. Я не читав джерела col, але він, ймовірно, просто вивчає stdin byte за байтом і не передає backspaces тощо для stdout. Сторінка людини col читається так, як хтось написав її спеціально для фільтрації вихідних даних.
Брюс Едігер

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
Мені подобається простота.
Joel Sjögren

3

Якщо ви просто хочете отримати сторінку cat, ви можете просто передати її на cat:

man ls | cat

Якщо ви хочете скинути його вміст у файл:

man ls > ls_manpage_dump.txt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.