sid*_*der 14 shell json elasticsearch jq
所以花了几天时间记住如何编写各种Unix工具,比如sed,awk和grep,学习一些比较新的工具,比如curl(我知道,对吧?我甚至第一次打破了gcc)也许是20年,但它很快就会回来了)并且在构建一个用于AWS EC2上的Elasticsearch的小JSON数据库方面取得了很好的进展.
但我刚刚遇到批量索引的问题,因为ES _bulk端点要求文件基本上是JSON串行字符串,每个字符串上都有\n个终止符; 我使用各种Web API和文件预处理/处理构建的内容非常简单,即人类可读.
是否有一个简单的shell脚本方法可以将所有漂亮的JSON简单地连接成字符串,而无需加载某些Java库或其他什么?我可以在预处理过程中将标记添加到基本文件中,以标记所需的\n中断,如果这有助于解析,但如果有人对工具集有提示,我将不胜感激,因为我离这个小小的一步远离加入该项目.我有一种感觉,那里有脚本,我知道有一些库,但到目前为止我还没有找到任何简单的命令行工具来进行不合适的打印.
非常感谢任何提示,
干杯
希德
Dav*_*vid 15
您可以尝试使用优秀的jq工具来解析shell中的JSON.要使用jq进行漂亮打印,您可以使用以下任一方法:
cat pretty-printed.json | jq -c .
jq -c . pretty-printed.json
Run Code Online (Sandbox Code Playgroud)
-c(或--compact-output)告诉它不打印(这是默认设置)."." 告诉它除了重新格式化之外,"按原样"返回JSON内容.它会被转储回stdout,因此您可以重定向输出或将其传递给其他东西.
PS我想解决同样的问题,并选择了这个选项.
您可以尝试使用正则表达式查找/替换:
请参阅: https: //github.com/dzhibas/SublimePrettyJson/issues/17