Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How can I 'cat' a man page like I would 'cat' a file to get just a dump of the contents?

share|improve this question
up vote 15 down vote accepted

First of all, the man files are usually just gziped text files somewhere in your file system. Since your milage will vary finding them and you probably wanted the processed and formatted version that man gives you instead of the source, you can just dump them with the man tool. By looking at man man, I see that you can change the program used to view man pages with the -P flag like this:

man -P cat command_name

It's also worth nothing that man automatically detects when you pipe it's output instead of viewing it on the screen, so if you are going to process it with something else you can skip straight to that step like so:

man command_name | grep search_string

or to dump TO a file:

man command_name > formatted_man_page.txt
share|improve this answer
    
using -P doesn't make the output file neatly readable. It's scribbled with all the ctrl-H characters. I used to do man cmd >! man.cmd and open the man.cmd and do '%s/^H.//g' to remove the annoying control characters for representing bolds and italics. But this still has some problem when there are other special characters. I'm still looking for a good method to avoid manual editing to the output. – Chan Kim Apr 25 at 8:34
    
@ChanKim You're doing something wrong or have some non-standard configuration getting in your way because both of the methods here do in fact produce clean output formatted in plain text with no extra control characters. Are you sure you don't have man aliased to something or flags forced on in your shell that are separating your from the normal function of man? – Caleb Apr 25 at 8:39
    
@Caleb, I confirm OP's problem. CentOS release 6.7 (Final), /usr/bin/man gcc >j, edit 'j', all of the ctrl-H's are in there. Best answer I've found is at commandlinefu.com/commands/view/2417/… – Charles Roth May 19 at 15:42

Man pages are usually troff pre-processed files, and you can get to the plain text with,

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

groff is a wrapper for troff.

More information here.

You might need to use gzip to uncompress the man page files first, and you'll still have plenty of formatting information in the output.

share|improve this answer
2  
+1 for talking about groff/troff and the formatting of man pages – lgeorget Jun 25 '14 at 11:26

To get an ASCII man page file, without the annoying backspace/underscore attempts at underlining, and weird sequences to do bolding:

man ksh | col -b > ksh.txt
share|improve this answer

Just use the man command - you can pipe the output into other things just as you can with cat for a file.

share|improve this answer
1  
I like the simplicity. – Joel Sjögren Apr 28 '13 at 12:31

If you just want to cat a manpage, you can simply pipe it to cat:

man ls | cat

If you want to dump its content to a file:

man ls > ls_manpage_dump.txt
share|improve this answer

I do this all the time. This command line makes me happy:

man man | col -bx > man.txt

col -b removes backspaces.

col -bx also replaces tabs with spaces which is my strong preference.

If I want the text to be formatted to a width of my preference while reading, then I change the command to this:

MANWIDTH=10000 man man | col -bx > man.txt
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.