Piping the output of a program to Preview.app

I'm using an application (the dot program of the graphviz library) that generates a wide variety of file formats including PostScript and PDF. It can send the result to stdout or to a file. I'm currently sending it to a file and opening it with Preview.

Is there any way to pipe the output and have it be read by Preview, so that I'd don't have to generate a file and have it lying around? This is going to be used by a number of people who won't know the internal structure of the generating script and I don't want to clutter their folders or complicate their lives.

More generally, is there any way to take a program that sends its output to stdout and pass that output to an program that usually takes it's input from a file, without actually creating a file?


Solution 1:

$ your_program | open -f -a /Applications/Preview.app

Source: View Terminal ‘man’ Pages In Preview / PDF

Solution 2:

f=$(mktemp -t test).txt; echo test > $f; open $f -a TextEdit # f=$TMPDIR/test.txt