ffs:文件系统| FFS

Unix shell 是一个强大的工具,Unix 生态系统提供了一系列令人难以置信的字符串处理工具。 但 shell 实际上只知道如何处理一种数据 结构: 文件系统。 现代系统使用各种
半结构化

数据,例如 JSON 或 YAML。 这些半结构化格式本质上是树,字符串处理是一个糟糕的匹配 – 使用 sed 编辑 JSON 不是一个好主意!

ffs——缩写 FFsystem — 允许您将半结构化数据挂载为文件系统,让您可以使用熟悉的 shell 工具处理现代格式。

目前ffs支持 JSON,
YAML, 和 TOML,还有更多。

您可以在 ffs 联机帮助页中阅读更多相关信息。

运行 ffs [file] 在挂载点文件处挂载 file.blah。 文件的最终更新版本将在标准输出上输出。

$ cat object.json { “name”: “Michael Greenberg”, “eyes”: 2, “fingernails”: 10, ” human”: true } $ ffs -o object_edited.json object.json &
[1] 60182 $ 树对象 对象 ├── 眼睛 ├── 指甲 ├── 人类 └── 名称 0 个目录,4 个文件 $ echo Mikey Indiana >object/name $ echo 1 >object/nose $ mkdir object/pockets $ cd object/口袋/ $ echo 键 >裤子 $ echo pen >衬衫 $ cd .. $ cd .. $ umount 对象 $
[1]+ 完成 ffs -o object_edited.json object.json $ cat object_edited.json {“眼睛”:2,”指甲”:10,”人类”:true,”名字”:”迈克印第安纳”,”鼻子”:1, “口袋”:{“裤子”:”钥匙”,”衬衫”:”笔”}}

请注意一些事情:结果对象的鼻子键的值是数字,而不是字符串; pockets 目录变成了一个对象。

您可以通过运行 ffs -m MOUNT file 指定显式挂载点; 您可以使用 -o OUTPUT 指定输出文件。 您可以通过运行 ffs -i file (如上面的 gif 所示)就地编辑文件——卸载卷时,结果输出将写回文件。 这是文字记录:

~/ffs/demo $ echo '{}' >demo.json ~/ffs/demo $ ffs -i demo.json &
[1] 56827 ~/ffs/demo $ cd demo ~/ffs/demo/demo $ echo 47 >favorite_number ~/ffs/demo/demo $ mkdir 喜欢 ~/ffs/demo/demo $ echo true >likes/dogs ~/ffs/demo /demo $ echo false >likes/cats ~/ffs/demo/demo $ 触摸错误 ~/ffs/demo/demo $ echo Michael Greenberg >name ~/ffs/demo/demo $ echo >website ~/ffs/demo/demo $ cd .. ~/ffs/demo $ umount demo ~/ffs/demo $
[1]+ 完成 ffs -i demo.json ~/ffs/demo $ cat demo.json {“favorite_number”:47,”likes”:{“cats”:false,”dogs”:true},”mistakes”:null,”名称”:”迈克尔·格林伯格”,”网站”:””}~/ffs/demo $ ~/ffs/demo $

在 Linux 上你需要 保险丝; 在 macOS 上,您需要 麦克保险丝。 然后您可以下载单个可执行文件。 这些是 最新开发版本:

请参阅 发布页面 对于特定版本; 当前版本是0.1.2。 您还可以从构建 ffs 来源

查看论文 “用于 POSIX Shell 数据处理的文件即文件系统”
公共科学图书馆 2021。 上面是预先录制的演示; 预先录制的演讲如下。

类似的工具 杰克
圆形的 旨在帮助您在命令行上使用 JSON。 它们是很棒的工具!

为什么 ffs 可能是您的正确选择?

  • ffs 支持多种格式。

  • ffs 允许您使用熟悉的 shell 工具进行编辑。

  • ffs 不涉及学习新语言。

为什么可能是 ffs 不是 对您来说是正确的选择吗?

  • 你使用Windows。 (对不起。😥)

  • 您不能使用保险丝。

  • 您只需搜索,无需编辑。

  • 您的文件非常大。

ffs 已获得许可
GPLv3

1714500932
#ffs文件系统 #FFS
2024-04-30 17:43:12

Leave a Reply

Your email address will not be published. Required fields are marked *

近期新闻​

编辑精选​