首页 > 解决方案 > 如何使用 sed 提取模式之间的线

问题描述

我有一个包含以下 json 数据的文件

    "comments": {
  "href": "https://api.github.com/repos/sumith08/myrepo/issues/xxxx/comments"
},

我正在尝试使用带有以下命令的 sed 从文件中提取一行。

sed -n '/"comments": {/,/}/p' commands.txt

输出应该只是

https://api.github.com/repos/sumith08/myrepo/issues/xxxx/comments

但我明白了

        "comments": {
  "href": "https://api.github.com/repos/sumith08/myrepo/issues/xxxx/comments"
},

有人可以帮我正确的命令吗?

标签: shellsed

解决方案


正如几条评论中所建议的那样,sed可能不是适合品尝的工具,而jq似乎是。

以下命令适用于您发布的简单示例,但一旦您在稍微复杂的 JSON 文件中使用它,它可能无效/错误。

sed -n 's/.*\(https.*\)"/\1/p'

推荐阅读