emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Eric Schulte" <schulte.eric@gmail.com>
To: Matthias Teege <matthias-omd@mteege.de>
Cc: emacs-orgmode@gnu.org
Subject: Re: Passing a table to org-babel shell script
Date: Sun, 07 Feb 2010 10:20:30 -0700	[thread overview]
Message-ID: <87fx5dc68f.fsf@gmail.com> (raw)
In-Reply-To: 20100207090115.GA11136@cab

Alright,

I've set this up so that the table is exported to a comma or tab
separated format and then saved as a string to the variable in the
source code block.  By default tab is used as the separator when
exporting the table to a string, but this can be overridden using
the :separator header argument.

The following large snippet show some example usage of tables in shell
scripts.  Please let me know how it works for you and if you have any
other suggestions.

Thanks -- Eric

--8<---------------cut here---------------start------------->8---
#+tblname: fibs
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
| 5 | 5 |
| 6 | 8 |

#+begin_src sh :var table=fibs
  echo "$table" |wc
#+end_src

#+results:
: 6      12      24

#+begin_src sh :var table=fibs
  echo "$table"
#+end_src

#+results:
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
| 5 | 5 |
| 6 | 8 |

#+begin_src sh :var table=fibs :separator --
  echo "$table" | head -1
#+end_src

#+results:
: 1--1
--8<---------------cut here---------------end--------------->8---


Matthias Teege <matthias-omd@mteege.de> writes:

> On 11:33 Sat 06 Feb, Eric Schulte wrote:
>
> Moin,
>
> thanks for your reply
>
>> 1) allowing the user to specify a separator with a header argument as
>>    follows
>>    #+begin_src sh :var table=sec :separator ,
>>      cat <<EOF
>>      $table
>>      EOF
>>    #+end_src
>>    
>>    which would result in something like
>> 
>>    : "Hello, World"
>
> I like this idea because it is what I would expect. In my first
> "experiment", I assumed that I can use the "|" as a separator. I would
> like to use a table as input form and pipe the rows to a shell script
> written in org-babel. Sometimes it is easier to proccess data with
> awk instead of using elisp. So my example is a bit misleading.
>
>> 2) writing the table to a tab or comma separated file and then
>>    replacing =$table= in the source block body with the path to the
>>    file name, s.t. something like
>
> IMHO it is not necessary under Unix. Reading from stdin is usual. But it
> maybe different under Windows.
>
> Many thanks
> Matthias
>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

      reply	other threads:[~2010-02-07 17:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-24  9:47 Passing a table to org-babel shell script Matthias Teege
2010-02-06 18:33 ` Eric Schulte
2010-02-07  9:01   ` Matthias Teege
2010-02-07 17:20     ` Eric Schulte [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87fx5dc68f.fsf@gmail.com \
    --to=schulte.eric@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=matthias-omd@mteege.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).