如何编辑edn文件?

问题描述 投票:0回答:2

我有一个从 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.
clojure text-editor
2个回答
3
投票

假设您已在 PATH 中安装了

boot
,您可以通过以下脚本传输代码:

#!/usr/bin/env boot
(require '[clojure.edn :as edn]
         '[clojure.pprint :refer [pprint]])

(defn -main [& args] (pprint (edn/read *in*)))

...如(如果以上内容另存为

pprint-edn
):

pprint-edn <unformatted.edn >formatted.edn

0
投票

如果你有 clojure CLI已安装,您可以运行:

clojure -e "(do (require 'clojure.edn 'clojure.pprint) (clojure.pprint/pprint (clojure.edn/read *in*)))" < in.edn > out.edn
© www.soinside.com 2019 - 2024. All rights reserved.