【问题标题】:Filtering out indented lines in JSON GitHub API with sed使用 sed 过滤掉 JSON GitHub API 中的缩进行
【发布时间】:2018-11-08 14:10:24
【问题描述】:

我可以过滤掉所有的名字,

sed -n '/"name":/p' htop.json

但我想过滤掉所有缩进的输出。我正在寻找来自每个 GitHub 的 repo 标题。重要的是我使用了 sed 之类的轻量级工具来使其小巧便携。

这里是 htop.json https://pastebin.com/5xuH29yW

【问题讨论】:

    标签: json linux sed


    【解决方案1】:

    好吧,只需从行首开始过滤空格/缩进字符:

    sed -n '/^      "name":/p' htop.json
    

    我们也可以将空格的个数指定为一个数字:

    sed -n '/^[ ]\{6\}"name":/p' htop.json
    

    让我们获取 repo 名称!

    sed -n '/^      "name":/{s/[[:space:]]*"name":[[:space:]]*"\(.*\)",$/\1/;p}' htop.json
    

    【讨论】:

    • 这两个例子都不起作用,可能是我的错误。我在原始帖子中包含了完整的 htop.json。让我知道是否有比使用 pastebin 更好的方法。
    • 只是错误的空格数。您在这里发布了两个空格的标识,在那个粘贴箱中有 6 个空格。我将把答案编辑为 6 个空格。
    • 非常好,非常感谢!我会投票,但我还没有声誉。您是如何学习这些特定知识的?
    • sed 是用于解析文本和使用正则表达式的非常常见、众所周知和流行的实用程序。我记得有一次我玩过regex crosswords,这样的游戏很有趣,并且会让你的正则表达式技能迅速提升。
    猜你喜欢
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    相关资源
    最近更新 更多