Hi Charles, Thomas,

Thank you for the replies. They were very useful.

I learned about :post for the first time. That minimal example worked great. Earlier I was confused about "*this*", but then from Info node "(org) post", I learned that it's a special variable for :post.

For now, ":results verbatim" does the job for me for awk source blocks. But :post looks like a very powerful generic solution. With your reply, I at least tried it out and I will keep that in mind for when I might need to use it in future.

Kaushal

On Sun, Jun 12, 2016 at 5:02 PM Charles C. Berry <ccberry@ucsd.edu> wrote:
TL;DR: That is almost correct. `:post' header arg gives fine control of
formatting if needed.

`org-babel-insert-result' formats anything that isn't a string or a list
using "%S". Then it tries hard to turn a list into a "table". Lists that
cannot be made into tables are formatted as strings with "%s\n". However,
various languages have their own formatting principles, so what
`org-babel-insert-result' gets as the `result' is a bit idiosyncratic.

You can get a deeper look at the `result' by pretty printing it with the
aid of a :post header arg. Example:


#+NAME: I-feel-pretty
#+BEGIN_SRC emacs-lisp :results pp
*this*
#+END_SRC

This elisp list is not revised:

#+BEGIN_SRC emacs-lisp :post I-feel-pretty
'(a b c (d . e))
#+END_SRC

#+RESULTS:
: (a b c
:    (d . e))
 
On Sun, 12 Jun 2016, Thomas S. Dye wrote:
 I think I'm correct to say that by default a single value result is
 output as a scalar, and everything else is converted to an Org mode
 table.
--

--
Kaushal Modi