如何使用sed或grep和正则表达式json提取文本

时间:2019-02-27 20:51:12

标签: bash curl sed expression

您好,我正在使用curl获取一些我需要清理的信息。 这是来自curl命令:

{"ip":"000.000.000.000","country":"Italy","city":"Milan","longitude":9.1889,"latitude":45.4707, etc..

我需要获取“ Ita”作为输出,即国家的前三个字母。

在阅读sed JSON regular expression之后,我试图适应

sed -e 's/^.*"country":"[a-zA-Z]{3}".*$/\1/

但这不起作用。

可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

使用,您可以执行以下操作:

curl .... | jq -r '.country[0:3]'

如果您需要 设置 该国家/地区为前三个字符,

jq '.country = .country[0:3]'

一些相当高级的bash:

{
    read country
    read city
} < <(
    curl ... |
    jq -r '.country[0:3], .city[0:3]' 
)

然后:

$ echo "$country $city"
Ita Mil