From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sebastien Vauban" Subject: Re: [babel] Expertise in string manipulation available? Date: Fri, 12 Aug 2011 00:17:54 +0200 Message-ID: <80k4ajzj71.fsf@somewhere.org> References: <801uwtapvu.fsf@somewhere.org> <6036.1313014624@alphaville.americas.hpqcorp.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Hi Nick, Nick Dokos wrote: > Sebastien Vauban 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