[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [babel] Expertise in string manipulation available?
From: |
Sebastien Vauban |
Subject: |
Re: [O] [babel] Expertise in string manipulation available? |
Date: |
Fri, 12 Aug 2011 00:17:54 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (windows-nt) |
Hi Nick,
Nick Dokos wrote:
> Sebastien Vauban <address@hidden> wrote:
>> Hello,
>>
>> #+TITLE: String manipulation
>>
>> * Data
>>
>> #+tblname: list-of-couples
>> | Me | @Here |
>> | Myself and I | @There |
>>
>> * Successful outcome
>>
>> I expect the above table to be transformed to those lines:
>>
>> #+begin_example
>> ---
>> Me
>> @Here
>> ---
>> Myself and I
>> @There
>> #+end_example
>>
>
> I can do it easily in python except that I don't know how to produce the
> #+begin/end_example block.
> My results are preceded by colons:
>
> * Data
>
> #+tblname: list-of-couples
> | Me | @Here |
> | Myself and I | @There |
>
> #+begin_src python :var table=list-of-couples :exports code :results output
> :tangle no
> for row in table:
> print "---"
> for i in range(len(row)):
> print row[i]
> #+end_src
>
> #+results:
> : ---
> : Me
> : @Here
> : ---
> : Myself and I
> : @There
This works like a charm! Thank you very much...
Would some good soul give me hints on how to make the next code blocks work
similarly in the other languages, I'd take every advice...
>> * First attempt
>>
>> ** Code and output
>>
>> #+begin_src awk :stdin list-of-couples :exports code :results output :tangle
>> no
>> {
>> print "---";
>> print $1;
>> print $2;
>> }
>> #+end_src
>>
>> #+results:
>> #+begin_example
>> ---
>> Me
>> @Here
>> ---
>> Myself
>> and
>> #+end_example
>>
>> ** Issue
>>
>> The first line of the table is perfectly outputted.
>>
>> The second line is not, because of the space in its first column: $2 refers
>> then to the second word, not to the string of the second column.
>>
>> * Second attempt
>>
>> ** Code and output
>>
>> #+begin_src emacs-lisp :var data=list-of-couples :exports results :results
>> output :tangle no
>> (mapc
>> (lambda (item)
>> (print (format "---\n%s\n%s\n"
>> (first item)
>> (second item))))
>> data)
>> #+end_src
>>
>> #+results:
>> #+begin_example
>>
>> "---
>> Me
>> @Here
>> "
>>
>> "---
>> Myself and I
>> @There
>> "
>> #+end_example
>>
>> ** Issue
>>
>> Literal double quotes are inserted in the output. Plus blank lines...
Best regards,
Seb
--
Sebastien Vauban