¿Puedo exportar una tabla específica en un archivo org a csv desde la línea de comando?

19

Tengo un archivo de organización con varias tablas.

$ cat ~/foo.org
#+Title: hello world

* section 1

lorem ipsum

#+TBLNAME: first-table
| i      | want | to    |
| export | this | table |

#+TBLNAME: second-table
| this | table | is        |
| not  | as    | important |

Este archivo se actualiza regularmente. Tengo un script perl que analiza el csvarchivo obtenido de la emisión M-x org-table-exporten first-table. Me gustaría poder exportar first-tablea csv desde la línea de comandos para no tener que hacerlo manualmente cada vez. es posible?

Brian Fitzpatrick
fuente
1
Para obtener el contenido de la tabla en un archivo Org que podría hacer (org-babel-ref-resolve "first-table"), esto le dará la tabla como una lista y luego invocará orgtbl-to-csvesa lista. Consulte la documentación de orgtbl-to-csvpara obtener argumentos adicionales. Luego puede ejecutar Emacs en modo por lotes para ejecutar su función usando --evalu -fopciones.
wvxvw

Respuestas:

24

Puede buscar la tabla y utilizarla org-table-exportpara exportarla. Puede poner la función en un archivo, cargarla y exportar por lotes. Tal vez algo como esto:

setup.el:

(require 'org)

(defun my-tbl-export (name)
  "Search for table named `NAME` and export."
  (interactive "s")
  (show-all)
  (let ((case-fold-search t))
    (if (search-forward-regexp (concat "#\\+NAME: +" name) nil t)
    (progn
      (next-line)
      (org-table-export (format "%s.csv" name) "orgtbl-to-csv")))))

Luego, con su archivo de ejemplo, puede exportar por lotes de esta manera:

$ emacs --batch foo.org -l setup.el --eval '(my-tbl-export "first-table")'

Mi búsqueda de la mesa es un poco cruda, pero funciona.

suvayu
fuente