[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] [Babel] Table collapsed as one big line, when passed to a shel
From: |
Sébastien Vauban |
Subject: |
[Orgmode] [Babel] Table collapsed as one big line, when passed to a shell script |
Date: |
Tue, 23 Nov 2010 12:00:15 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (windows-nt) |
#+TITLE: Line breaks preservation
#+DATE: 2010-11-23
#+LANGUAGE: en_US
* Abstract
Table is seen as being *one big line*, when echo'ing all of its rows.
* Passing var via Babel
I want to *add a column* to the following table.
#+results: table-message
| This is line 1 of the message. |
| This is line 2 of the message. |
| This is the last line of the message. |
Its value should be dependant on a *regexp matching* the *current row* (for
example, if 1 is detected in the original column, then write "A" in the new
one, "B" if 2 is read, "C" if 3 is read, etc.).
Hence, I'm thinking using AWK as an easy solution.
#+begin_src note
I'm open to other ideas on how I could do this as easily. Just throw me
ideas, if you have some.
#+end_src
*First* trial: add a column whose cell contents will be *fixed* (here, equal
to =New col=).
#+srcname: add-col
#+begin_src sh :var data=table-message :results output :exports both
echo $data | awk '// {print "| New col | " $0 " |";}'
#+end_src
#+results: add-col
: | New col | This is line 1 of the message. This is line 2 of the message.
This is the last line of the message. |
I was expecting 3 lines, not 1...
* Replacing Babel expansion of the variable
Here, I made a few changes:
- added option =-n= to cat, to make him number the lines
- added explicit =[BEGINOFLINE]= and =[ENDOFLINE]= markers to see where the
lines begin and end
#+srcname: add-col-expanded
#+begin_src sh :results output :exports both
data=$(cat -n <<BABEL_TABLE
This is line 1 of the message.
This is line 2 of the message.
This is the last line of the message.
BABEL_TABLE
)
echo $data | awk '// {print "[BEGINOFLINE]| New col | " $0 " |[ENDOFLINE]";}'
#+end_src
#+results: add-col-expanded
: [BEGINOFLINE]| New col | 1 This is line 1 of the message. 2 This is line 2 of
the message. 3 This is the last line of the message. |[ENDOFLINE]
Still the same, though we observe that =cat= sees 3 lines, but the =echo= does
not seem to preserve the line breaks, when executed.
* Questions
- Do you have the same problems on your machine?
- Is it due to Cygwin Bash on Windows (my case)?
- Any idea on what could cause this, or on any workaround?
Best regards,
Seb
--
Sébastien Vauban
- [Orgmode] [Babel] Table collapsed as one big line, when passed to a shell script,
Sébastien Vauban <=