コマンドラインから組織ファイルの特定のテーブルをcsvにエクスポートできますか?


19

複数のテーブルを持つ組織ファイルがあります

$ 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-tablefirst-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")'

テーブルの検索は少し粗雑ですが、動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.