在 Unix Shell 中处理半结构化数据

2021-08-08 21:52:22

Unix shell 非常强大。我经常将它用于简单的任务(移动文件)、日常工作(评分脚本)以及我的开发过程(构建、部署等)。当我处理文本时,shell 及其生态系统非常出色:将 cat、find、grep、sed、tr 和 cut 与 shell 管道和重定向拼凑在一起是一种方便、富有表现力且快速的检查和编辑文件的方式。但是在处理半结构化数据(如 JSON 和 YAML)时,我的 shell 工具链的帮助要小得多。人们对 shell 生态系统做出了出色的贡献来提供帮助——像 jq 和 gron 这样的工具。这两个工具提供了用于操作 JSON 的新语言。对于编程语言研究人员来说,承认可能会很尴尬,但是……我对新语言有点着迷了。所以我构建了一个新工具,让您可以使用常用的 shell 工具来处理现代文件格式:ffs,文件文件系统。 ffs 允许您将半结构化数据挂载为文件系统:对象和列表对应于目录,而其他类型对应于常规文件。您可以以一种格式挂载文件,编辑文件系统,然后将其写回另一种格式。运行 ffs 所需的只是 FUSE,这是一个支持用户空间文件系统的内核模块。你需要在 Linux 上使用 libfuse,或者在 macOS 上使用 macFUSE。下载一个二进制文件并玩转!