json - 如何在 shell >> 串行字符串 JSON >> ES _bulk 中对漂亮的 JSON 文件进行不 pretty-print ?

标签 json shell elasticsearch jq

在 AWS EC2 上使用 Elasticsearch 时,我遇到了一个批量索引问题。 ES _bulk 端点要求文件基本上是 JSON 串行字符串,每个字符串上都有\n 终止符;我使用各种网络 API 和文件预处理/处理构建的是漂亮的 JSON,即易于人类阅读。

是否有一种简单的 shell 脚本方法可以将所有漂亮的 JSON 简单地连接成字符串,而无需加载一些 Java 库或其他任何东西?如果这有助于解析,我可以在预处理期间向基本文件添加标记以标记所需的\n 中断,但如果有人对工具集有提示,我将不胜感激。我感觉那里有脚本,我知道有一些库,但到目前为止我还没有找到任何简单的命令行工具来进行不美观的打印。

最佳答案

你可以试试很棒的jq用于在 shell 中解析 JSON 的工具。要使用 jq 去美化打印,您可以使用以下任一方法:

cat pretty-printed.json | jq -c .
jq -c . pretty-printed.json

-c(或 --compact-output)告诉它不要 pretty-print (这是默认设置)。这 ”。”告诉它“按原样”返回 JSON 内容,而不是重新格式化。它被转储回标准输出,因此您可以重定向输出或将其通过管道传输到其他内容。

附言我一直在寻找解决同样问题的方法,然后选择了这个选项。

关于json - 如何在 shell >> 串行字符串 JSON >> ES _bulk 中对漂亮的 JSON 文件进行不 pretty-print ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25859100/

相关文章:

ruby-on-rails - Elasticsearch 模型 gem(rails),向映射添加新字段

带有过滤器的 Elasticsearch simple_query_string

linux - 从 while 循环中导出变量

双引号字符串内的 Bash TAB 补全

python - 将所有文档的列更新为Elasticsearch的最佳实践

java - 如果 json 数组为空,Gson getAsString() 失败

javascript - 扩展和探索 json 对象,而无需 console.log(obj) 它们

javascript - LinkedIn API - 如何在公司A中找到用户1和用户2之间的相互连接

php - 如何解析 Twitter api 返回的 json 数据并在我的网页上使用它?

c - C 语言中的 Shell