Hacker News new | ask | show | jobs
by teddyh 3967 days ago
That project is a symptom of manual pages not having good “EXAMPLES” sections. The examples on that web page should be contributed upstream to the manuals pages of the software that they are for.

If you want a fast way to read the EXAMPLES section only for a command, here is a shell function which creates an ‘eg’ command which only displays the “EXAMPLES” section of manual pages:

  eg(){
      MAN_KEEP_FORMATTING=1 man "$@" 2>/dev/null \
          | sed --quiet --expression='/^E\(\x08.\)X\(\x08.\)\?A\(\x08.\)\?M\(\x08.\)\?P\(\x08.\)\?L\(\x08.\)\?E/{:a;p;n;/^[^ ]/q;ba}' \
          | ${MANPAGER:-${PAGER:-pager -s}}
  }
Usage:

  $ eg tar
  EXAMPLES
       Create archive.tar from files foo and bar.
             tar -cf archive.tar foo bar
       List all files in archive.tar verbosely.
             tar -tvf archive.tar
       Extract all files from archive.tar.
             tar -xf archive.tar
  $
2 comments

Any ideas where I'd find how to submit the man page patches? Some upstreams are incredibly hard to find.
Can you give me an example? What I’d do it look at the Debian package, which both documents where upstream is and has a bugtracker of its own which you can submit suggestions to, and the Debian maintainer should forward the submission to upstream if appropriate.
Aaand it eludes me - I'll keep that in mind for the next time I find a manpage without examples.
Thank you, this is really helpful.

Could anyone contribute a version for OSX?

If you have homebrew you can just install the 'gnu-sed' package and then change the function to call 'gsed' instead.
Here's my terribly hackish version for BSD userlands (briefly tested on FreeBSD, may work on OS X):

    #!/bin/sh
    eg () {
        man $1 | grep '^E.EX.XA' -A 1000 | grep '^[A-Z]' -m 2 -B 1000 -A 0 | sed '$d' | $PAGER
    }
    eg $1