提取第二对引号之间的值

时间:2019-07-03 15:08:43

标签: awk sed text-processing

我正在尝试从某些输出中提取值。我正在尝试使用awk捕获我需要的值。

我专门将awk用作学习的机会,而不是要求的机会,如果有一个更好的工具可以实现这一目标,我可以采用这种方式,尽管Mac / Linux上通常必须有它。 (例如jq不可用)

我有一个很大的json blob,通常前十行中的某处将是

"my_key": "my_val",

我需要提取的只是“ my_val”(不带引号)

我已经达到了

awk -F'"' '$0=$4'

返回行中的正确位置,但对所有行都这样做。我觉得有一个更清洁的解决方案我不掌握。

“包含“ my_key”的匹配行然后提取第二对引号之间的值”的awk单行代码是什么?

1 个答案:

答案 0 :(得分:0)

一如既往,我一经发布就设法弄清楚。

在这种情况下,以下内容对我有用:

awk -F'"' '/my_key/{print $4}'

如果我对它的理解正确,它将使用“作为分隔符,然后匹配包含my_key的行,然后根据分隔符在该行上打印所需的位置。