削减字符串周围的所有内容

时间:2019-02-08 09:43:36

标签: bash grep

  • 我已经导出了很多JSON文件,将近100个。
  • 基本上,它们是巨大的一线客。

  • 每个文件都有"uid":"random"

  • 如何仅剪切主目录中所有文件的"uid":"random"部分?

  • 我尝试使用grep {},但是不能解决uid上的引号和值。

  • 此外,我尝试将其剪掉,但是引号仍然是问题所在。
  • 行结构:

    ...“ title”:“ Random title”,“ uid”:“ r4nd0muid”,“ version”:X},“ overwrite”:true}

2 个答案:

答案 0 :(得分:1)

使用jq(这是JSON文件的搜索和转换工具)可能要容易得多。

给出文件test.json

{
  "uuid": "whatever"
}

您可以使用以下方法仅提取uuid字段:

jq '.uuid' test.json
# output: "whatever"

答案 1 :(得分:1)

除了使用JSON感知工具来处理JSON文件外,不要使用其他任何工具,并发布适当的示例进行测试,但要解决uid上的引号和发布的字符串上的值:

$ grep -o \"uid\":\"[^\"]*\" foodata
"uid":"r4nd0muid"

基本上是"uid":"[^"]*",即在"uid":"所有非""之后。