结合Awk智能系列和jq

结合Awk智能系列和jq,awk,jq,Awk,Jq,我有一个包含以下json格式的多行文件,我想通过管道将其传输到jq以提取几个字段 格式是, {"userData":[{"user":{"loginName":"TEST",....]}. {"userData":[{"user":{"loginName":"TEST1",....]}. 。。。。表示一些json数据 我可以用awk'/{\userData\/{p=1};p;/}\./{p=0};'提取行看起来打印得很好 我遇到的困难是在每一行上运行jq并提取json字段。如何使用单个awk

我有一个包含以下json格式的多行文件,我想通过管道将其传输到jq以提取几个字段

格式是,

{"userData":[{"user":{"loginName":"TEST",....]}.

{"userData":[{"user":{"loginName":"TEST1",....]}.
。。。。表示一些json数据

我可以用awk'/{\userData\/{p=1};p;/}\./{p=0};'提取行看起来打印得很好


我遇到的困难是在每一行上运行jq并提取json字段。如何使用单个awk命令实现这一点?

如果这些句点实际上出现在行尾,那么该文件的内容就不是纯json。如果该文件中的每一行都是一个json对象,后面紧跟着一个句点,那么您可以在raw中读取该文件,将该文件中的每一行作为字符串传递作为输入,去掉句点,然后解析json并像正常一样处理

例如,转储所有用户登录名:

$ jq -R '.[:-1] | fromjson | .userData[].user.loginName' input.txt

每一个物体和线条的末尾都有句号吗?@JeffMercado有。为了给你一些背景故事,这是一些来自弹性搜索API的文档数据。