如何编辑edn文件?
How to edit edn file?
我有一个从 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.
假设您在 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
如果你有 clojure
CLI已安装,可以运行:
clojure -e "(do (require 'clojure.edn 'clojure.pprint) (clojure.pprint/pprint (clojure.edn/read *in*)))" < in.edn > out.edn
我有一个从 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.
假设您在 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
如果你有 clojure CLI已安装,可以运行:
clojure -e "(do (require 'clojure.edn 'clojure.pprint) (clojure.pprint/pprint (clojure.edn/read *in*)))" < in.edn > out.edn