【发布时间】:2018-08-15 04:11:15
【问题描述】:
这是json的一部分。当名称为“US”时,我想获取“state”的值。但是,如果您看到 json,我们会发现很多名称都是“US”。但我需要在整个 json 中获得第一个出现的“US”。因此输出将是
输出: “FINISHED”(第一次出现“US”)
我用过 grep -A 5 "美国" |剪切 -d ':' -f2 |排序-u` 但结果并不好。
grep : 找出美国 -A 5:打印接下来的 5 行 -u:删除重复项
但我不确定如何在不排序的情况下删除重复项 有什么帮助吗?
{
"starttime" : 1533557223447,
"id" : "app-20180806120703-6027",
"name" : "US",
"cores" : 5,
"user" : "spark",
"memoryperslave" : 8192,
"submitdate" : "Mon Aug 06 12:07:03 UTC 2018",
"state" : "FINISHED",
"duration" : 184631
},
{
"starttime" : 1533557411909,
"id" : "app-20180806121011-6028",
"name" : "US",
"cores" : 5,
"user" : "spark",
"memoryperslave" : 8192,
"submitdate" : "Mon Aug 06 12:10:11 UTC 2018",
"state" : "FAILED",
"duration" : 135928
},
{
"starttime" : 1533557551584,
"id" : "app-20180806121231-6029",
"name" : "US",
"cores" : 5,
"user" : "spark",
"memoryperslave" : 8192,
"submitdate" : "Mon Aug 06 12:12:31 UTC 2018",
"state" : "KILLED",
"duration" : 136974
},
{
"starttime" : 1533557692376,
"id" : "app-20180806121452-6030",
"name" : "CA - CONGO STREAM",
"cores" : 5,
"user" : "spark",
"memoryperslave" : 8192,
"submitdate" : "Mon Aug 06 12:14:52 UTC 2018",
"state" : "FINISHED",
"duration" : 187685
}
【问题讨论】: