首页 > 解决方案 > 来自 txt 文件的 Grep(JSON 格式)

问题描述

我有一个 JSON 格式的 txt:

{
  "items": [ {
    "downloadUrl" : "some url",
    "path": "yxxsf",
    "id" : "abc",
    "repository" : "example",
    "format" : "zip",
    "checksum" : {
      "sha1" : "kdhjfksjdfasdfa",
      "md5" : "skjfhkjshdfkjshfkjsdhf"
    }
  }],
  "continuationToken" : null
}

我想使用 grep 提取下载 url 上下文(在这个例子中我想要“一些 url”)并将其存储在另一个 txt 文件中。TBH 我从未使用过 grep

标签: jsonbashshellgrep

解决方案


使用grep

grep -oP 'downloadUrl"\s:\s"(.*)",' myfile > urlFile.txt

请参阅此正则表达式:https ://regex101.com/r/DvnXCO/1


一个更好的方法是使用jq

Windows下载jqhttps ://stedolan.github.io/jq/download/

jq ".items[0].downloadUrl" myfile > urlFile.txt

推荐阅读