কমান্ড লাইন থেকে CSV তে আমি কোনও org ফাইলের একটি নির্দিষ্ট টেবিলটি রফতানি করতে পারি?


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 |

এই ফাইলটি নিয়মিত আপডেট হয়। আমার কাছে পার্ল স্ক্রিপ্ট রয়েছে যা csvজারি M-x org-table-exportকরা থেকে প্রাপ্ত ফাইলকে বিশ্লেষণ করে first-table। আমি first-tableকমান্ড লাইন থেকে সিএসভিতে রফতানি করতে সক্ষম হতে চাই তাই প্রতিবার নিজেই আমাকে এটি করতে হবে না। এটা কি সম্ভব?


1
একটি অর্গ ফাইলে আপনি যে টেবিলের বিষয়বস্তু পেতে পারেন তা পেতে (org-babel-ref-resolve "first-table")- এটি আপনাকে তালিকা হিসাবে সারণী দেবে এবং তারপরে orgtbl-to-csvসেই তালিকায় কল করবে। orgtbl-to-csvঅতিরিক্ত যুক্তিগুলির জন্য ডকুমেন্টেশন দেখুন । এরপরে আপনি আপনার ফাংশনটি কার্যকর করতে --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.