命令行 bash 如何从网页的 curl 输出中提取 json 文本

阿巴拉兹

目前,我有一个如下所示的 curl 请求:

curl -k -X GET -H "Accept: application/json" 'https://somesite.com?id=12345' | recode html..ascii

我将此请求传送到 recode 以对 html ascii 字符进行编码。生成的输出结果如下所示:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4270  100  4270    0     0   6713      0 --:--:-- --:--:-- --:--:--     0




0

-  
-  
:    
-  
-
:
-
-
 <html>
--  <head>
:-    <title>Test Cars</title>
-  </head>
:  <body>
2020-05-11 15:03:34,462 INFO test_123 - Ending import of test.
2020-05-11 15:03:34,462 INFO test_123 - Sending message to the UMB.
2020-05-11 15:03:34,989 INFO test_123 - Sending import message:
Message Headers:
  JMSExpiration: 0
  JMSPriority: 0
  JMSMessageID: null
  JMSTimestamp: 0
  JMSCorrelationID: null
  JMSReplyTo: null
  JMSRedelivered: false
  JMSType: application/json
Message Properties:
  id: 12345
  type: test
Message Content:
{
  "cars" : [ {
    "make" : "honda",
    "model" : "accord",
    "trim" : "ex"
  } ],
  "status" : "passed",
  "log-url" : "https://somesite.com/logurl"
}
2020-05-11 15:03:35,572 INFO test_123 - Message sent.

    </pre>
  </body>
</html>

我正在尝试解析输出的这一部分:

{
      "cars" : [ {
        "make" : "honda",
        "model" : "accord",
        "trim" : "ex"
      } ],
      "status" : "passed",
      "log-url" : "https://somesite.com/logurl"
    }

并将其通过管道传输到 jq 以将其转换为 json。

关于如何解析那个 json 以便我可以将它导入 jq 的任何想法?

围攻X

假设您的输出与您上面给出的一致,请使用:

sed -n '/^{/,/^}/p'

概念证明

$ sed -n '/^{/,/^}/p' ./tojq
{
  "cars" : [ {
    "make" : "honda",
    "model" : "accord",
    "trim" : "ex"
  } ],
  "status" : "passed",
  "log-url" : "https://somesite.com/logurl"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在bash命令行上使用awk的输出

linux/Bash 从 curl 输出中提取变量

Bash:从命令行程序中提取数据

bash脚本中的读取命令不作为读取命令执行,而直接将文本输出到命令行

在bash命令行上如何*解释?

如何更改命令行(bash)提示?

使用正则表达式通过bash或命令行从文本文件中提取电子邮件地址

如何从内核命令行中提取根变量的值

如何使用 grep 和 cut 一起使用 bash 从输出中提取特定文本

如何从命令行输出中删除不必要的文本?

如何在变量中转义特殊字符以在bash中提供命令行参数

在CURL请求中从JSON传递键值(命令行)

PHP + cURL禁用命令行进度输出

PHP + cURL禁用命令行进度输出

如何更新命令行输出?

cProfile命令行如何减少输出

如何使用JQ在命令行中将JSON列表提取到CSV中?

如何使用 linux 命令行 json parser (jq) 提取特定值?

如何从命令行简化AWS DynamoDB查询JSON输出?

如何复制命令行文本?系统监视器>进程>列“命令行”

如何从命令行隐藏curl参数?

如何从网页提取文本

在bash中解析并存储curl命令的json输出

将文本附加到命令行的输出中

如何既在控制台上显示命令行的输出又将输出保存到文本文件中?

如何既在控制台上显示命令行的输出又将输出保存到文本文件中?

从bash脚本调用时获取Python命令行输出

在bash命令行输出中转义空格

命令行:从输出中提取子字符串