Hi Siteshwar, > No, I am in no way interested in X. I am working on a shell, and the > idea is to show suggestions for command line options on pressing tab. > So let's say on pressing "ls<TAB>", I will get all the command line > options for ls command. Now a good idea is to fetch these options from > manual pages. > > @Larry, I am trying to do same thing with Python. Since I need to > parse the structure of OPTIONS section for completions. Any suggestion > for parsing man page sections are welcome ?
Not every man page has an OPTIONS section so you may need to fall back on something else, e.g. SYNOPSIS, but perhaps formatting the machine page to text and plucking stuff from it would be cheapest. $ man dmesg | sed '/^OPTIONS/p; 1,//d; /^[^ ]/Q' OPTIONS -c Clear the ring buffer contents after printing. -r Print the raw message buffer, i.e., don't strip the log level prefixes. -s bufsize Use a buffer of size bufsize to query the kernel ring buffer. This is 16392 by default. (The default kernel syslog buffer size was 4096 at first, 8192 since 1.3.54, 16384 since 2.1.113.) If you have set the kernel buffer to be larger than the default then this option can be used to view the entire buffer. -n level Set the level at which logging of messages is done to the console. For example, -n 1 prevents all messages, except panic messages, from appearing on the console. All levels of messages are still written to /proc/kmsg, so syslogd(8) can still be used to control exactly where kernel messages appear. When the -n option is used, dmesg will not print or clear the kernel ring buffer. When both options are used, only the last option on the command line will have an effect. $ Cheers, Ralph.