我有一个从clojure应用程序创建的edn文件。我想直接编辑文件来修改一些值,但不知道如何轻松完成。我知道我可以在sublime这样的文本编辑器中编辑它,但是整个文件都在第一行,没有换行。有没有什么工具可以把它分解成字段、记录或键值对,这样就更容易了,而不需要学习clojure?
更多细节:正在讨论的应用程序是Logseq。它维护一个包含所有页面的文件,每个页面都有一个创建日期和更新日期。创建日期不正确,所以我打算直接编辑它。因为我不知道clojure,所以我不能使用pprint。在sublime中,它被列出为:
[{:block/name "05-24-2021", :block/created-at 1621814400000, :block/updated-at 1621814400000} {:block/name "06-04-2021", :block/created-at 1622764800000, :block/updated-at 1622764800000} {:block/name "openings study", :block/created-at 1627400166344, :block/updated-at 1627400166344} {:block/name "progressive summarization", :block/created-at 1627587170901, :block/updated-at 1627587770818} 我希望它看起来更容易编辑:
[{
:block/name "05-24-2021", :block/created-at 1621814400000, :block/updated-at 1621814400000}
{:block/name "06-04-2021", :block/created-at 1622764800000, :block/updated-at 1622764800000}
{:block/name "openings study", :block/created-at 1627400166344, :block/updated-at 1627400166344}
{:block/name "progressive summarization", :block/created-at 1627587170901, :block/updated-at 1627587770818}
etc.发布于 2021-08-08 18:11:17
假设您已经在PATH中安装了boot,您可以通过以下脚本来传输代码:
#!/usr/bin/env boot
(require '[clojure.edn :as edn]
'[clojure.pprint :refer [pprint])
(defn -main [& args] (pprint (edn/read *in*)))...as in (如果上面另存为pprint-edn):
pprint-edn <unformatted.edn >formatted.edn发布于 2021-08-09 07:01:41
如果您安装了clojure CLI,则可以运行:
clojure -e "(do (require 'clojure.edn 'clojure.pprint) (clojure.pprint/pprint (clojure.edn/read *in*)))" < in.edn > out.ednhttps://stackoverflow.com/questions/68702599
复制相似问题