【发布时间】:2011-02-28 18:27:52
【问题描述】:
我必须根据特定键从 JSON 文件中提取数据。然后必须过滤数据(基于键值)并分成不同的固定宽度平面文件。我必须使用 shell 脚本开发解决方案。
由于数据只是键:值对,我可以通过处理 JSON 文件中的每一行、检查类型并将值写入相应的固定宽度文件来提取它们。
我的问题是输入的 JSON 文件大小约为 5GB。我的方法非常基本,想知道是否有更好的方法来使用 shell 脚本来实现这一点?
示例 JSON 文件如下所示:
{"Type":"Mail","id":"101","Subject":"How are you ?","Attachment":"true"}
{"Type":"Chat","id":"12ABD","Mode:Online"}
以上是我需要处理的数据示例。
【问题讨论】:
-
我建议使用 Python 或 Perl 脚本,使用专门用于处理 JSON 文件的模块。顺便问一下,这是作业吗?
-
注意:单行是 JSON 格式,但文件整体不是。
-
@Dennis 不,这不是功课。我已经建议使用 Perl 或 Python 会更容易,但我们必须仅在 shell 脚本中提供解决方案。
-
哪个外壳?哪个版本的 Unix? AWK 可以用于完整处理还是仅用于部分处理或根本不使用?允许/禁止哪些其他工具/实用程序?这些限制和其他限制的原因是什么?一个 5GB 的文件是很多不使用快速和非常适合的东西。
-
@Dennis:Korn shell,需要检查AIX机器的版本。是的,awk 可以用来开发完整的解决方案。除了 awk,还可以使用 sed 实用程序。即使我没有限制的原因....有人告诉我只使用 shell 脚本开发解决方案。