12

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?

Abhay Buch
  • 223
  • 2
  • 6
  • 1
    Save your document in `$TEMP` and then launch Preview using `open` - that way it will appear pretty seamless and the saved documents under `/tmp` will get cleaned up eventually. – Paul R Jul 01 '11 at 18:59

2 Answers2

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

Source: View Terminal β€˜man’ Pages In Preview / PDF

Indrek
  • 24,204
  • 14
  • 90
  • 93
fffact
  • 366
  • 2
  • 3
  • If you have graphviz installed `echo 'digraph { a -> b }' | dot -Tpng | open -f -a Preview` will open a pretty little directed graph! – JohnnyLambada Feb 04 '23 at 00:56
2

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

Lri
  • 40,894
  • 7
  • 119
  • 157