Hi Eric, "Eric Schulte" wrote: > Sébastien Vauban <wxhgmqzgw...@spammotel.com> writes: >> Sébastien Vauban wrote: >>> "Eric Schulte" wrote: >>>> Sébastien Vauban writes: >>>>> >>>>>>>> As you can see, the tables are completely wrongly made, because >>>>>>>> they're based on spaces ("à la Awk") and not on fixed position of >>>>>>>> fields ("à la Cut"). >>>>>>>> >>>>>>>> What can I do about this? >>>>>>>> >>>>>>>> - Post-process every ledger command with some awk or cut command that >>>>>>>> will do whatever is needed > > This might actually be a good solution for the shell block you mention > below. > >>>>>> >>>>>> (org-table-convert-region (point-min) (point-max)) >> >> As you adviced, I can play with the optional parameter in ob-ledger's code. >> >> But what about the results of sh code? >> >> Imagine now that I'm forced to use =sh= instead of =ledger=, in the >> following pratical case: >> >> #+srcname: reg >> #+begin_src sh >> m4 scorpios-ledger.dat | ledger -f - reg unknown >> #+end_src >> >> I'm using =m4= (and thus make some pre-processing) because I need (or want) >> to be able to switch between =ledger= and =hledger= and comment in or out >> the directives that are accepted by one but not by the other. >> >> Then, such a result is still problematic: >> >> 09-Aug-21 CHEQUE : 9953055 Expenses:Unknown >> 166.70 EUR 166.70 EUR >> 09-Sep-17 CHEQUE : 7691785 Expenses:Unknown >> 100.00 EUR 266.70 EUR >> 09-Oct-16 REMISE CHEQUE N 8686318 001 105 Expenses:Unknown >> -525.00 EUR -258.30 EUR >> >> I've looked in =org-babel-execute:sh= and =org-babel-reassemble-table=, >> among others, to look for similar constructs (calls to >> =org-table-convert-region=) but did not find any. >> >> Is there still a solution to get such results? > > As an interim solution you could add a :results scalar header argument to > your sh code block, then pass the output of that code block to a parsing > code block (namely the one from my previous email). That's certainly not > idea, but it should work for the moment. > > Alternately if ledger supports a more clearly delimited output format (e.g. > csv) then that would probably work as well. > >> #+results: >> | 09-Aug-21 CHEQUE : 9953055 | Expenses:Unknown | 166.70 EUR >> | 166.70 EUR | >> | 09-Sep-17 CHEQUE : 7691785 | Expenses:Unknown | 100.00 EUR >> | 266.70 EUR | >> | 09-Oct-16 REMISE CHEQUE N 8686318 001 105 | Expenses:Unknown | -525.00 EUR >> | -258.30 EUR | >> >> Couldn't we specify somehow the field separator as an extra header >> argument? I've looked for such an already existing in >> http://orgmode.org/manual/Specific-header-arguments.html#Specific-header-arguments, >> but that does not seem to be available yet. > > This would probably be a good addition to ob-sh (and any other language > which doesn't have a defined list syntax).
I'll have a deep look in the proposed direction. > I'll add this idea to the babel dev stack, but I'm swamped for the next week > or so. If it's for holidays, enjoy it! (and, accessorily, come back full of energy ;-)) Best regards, Seb -- Sébastien Vauban _______________________________________________ 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