Super User is a question and answer site for computer enthusiasts and power users. 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

I would like to be able to generate HTML then pipe it to a program which will render it, something like this:

for i in 1 2 3
do
    for j in a b c
    do
        echo "<table border="1"><tr><td>$i</td><td>$j</td></tr></table>"
    done
done | /usr/bin/firefox

Unfortunately, firefox can't render data piped in from stdin. Neither can google-chrome. lynx can, but who wants to use that?

I tried creating a named pipe, opening that in chrome and/or firefox and then piping data to that -- but the browser didn't update when I sent data through the named pipe.

Are there any non text-based browsers which will render html from stdin? The output doesn't need to be glitzy, I'm mostly interested in making delimited data a little more readable, on the fly.

Edit:

I tried using bash's process substitution, e.g. firefox <(sh /tmp/tablegen.sh), that didn't work either. Worst case scenario, I could output to a temp file, render, then delete, but I would prefer a slightly more elegant solution.

share|improve this question
1  
Similar question here: unix.stackexchange.com/questions/24931/… – wmz Dec 31 '12 at 14:34
    
Good link; pretty well confirmed my suspicion that using a temp file is the only way to go. – Barton Chittenden Jan 1 '13 at 17:24
up vote 6 down vote accepted

From one of the answers on this question I found bcat:

NAME

  bcat - browser cat

DESCRIPTION

  The bcat utility reads from standard input, or one or
  more files, and pipes output into a web browser. file
  may be '-', in which case standard input is concatenated
  at that position.

  When invoked as btee, all input is written immediately
  to standard output in addition to being piped into
  the browser.

Now I can run a script like this:

$ python foo.py | bcat

...and the resultant HTML output opens in a new Firefox tab!

On Ubuntu and other Debian-based Linux distributions you can install bcat with this command:

$ sudo aptitude install ruby-bcat
share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .