Чи можу я експортувати конкретну таблицю у org файл у CSV з командного рядка?


19

У мене файл org з кількома таблицями

$ 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 |

Цей файл оновлюється регулярно. У мене є сценарій PERL , який аналізує csvфайл , отриманий від видачі M-x org-table-exportна first-table. Я хотів би мати можливість експортувати first-tableв CSV з командного рядка, тому мені не потрібно робити це вручну кожен раз. Чи можливо це?


1
Для того, щоб отримати вміст таблиці у файлі Org, який ви могли зробити (org-babel-ref-resolve "first-table")- це дасть вам таблицю як список, а потім зателефонуйте orgtbl-to-csvдо цього списку. Для orgtbl-to-csvотримання додаткових аргументів див. Документацію . Потім ви можете запустити Emacs у пакетному режимі, щоб виконати свою функцію, використовуючи --evalабо -fпараметри.
wvxvw

Відповіді:


24

Ви можете шукати таблицю та використовувати її org-table-exportдля експорту. Ви можете помістити функцію у файл, завантажити його та пакетний експорт. Можливо, щось подібне:

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")))))

Тоді, використовуючи прикладний файл, ви можете пакетно експортувати так:

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

Мій пошук таблиці трохи суворий, але він працює.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.