Я пытаюсь написать небольшой сценарий Emacs Lisp, который читает файл csv из стандартного ввода, превращает все строки в таблицу, а затем печатает его в стандартный формат (Unix). Я написал базовую версию, которая принимает строку CSV и выводит таблицу в буфер. Однако я хотел бы превратить это в служебный скрипт Unix.
<b>#!/usr/bin/emacs --script</b>
(defun gen-row (lst)
(dolist (elm lst)
(insert "<tr>")
(insert (concat "<td>" elm "</td>"))
(insert "</tr>")
)
)
(defun parse-csv-line (txt)
(setq lst (progn
(insert "\n<table>\n")
(setq str txt)
(gen-row (split-string str ","))
(insert "\n</table>\n")
))
)
(parse-csv-line "this,is,a test")
Вывод в текущий буфер при запуске из Emacs:
<table>
<tr><td>this</td></tr><tr><td>is</td></tr><tr><td>a test</td></tr>
</table>
Использование скрипта:
./csv2html < foo.csv > bar.html; # emacs --script instead of perl -ane '...'