Как извлечь текст с помощью sed или grep и регулярного выражения json - PullRequest
0 голосов
/ 27 февраля 2019

Здравствуйте. Я использую curl для получения информации, которую мне нужно очистить.Это из команды curl:

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

Мне нужно получить «Ita» в качестве выходных данных, то есть первые три буквы страны.

После прочтения sed JSON Обычныйвыражение я попытался приспособиться, в результате

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

, но это не сработает.

Не могли бы вы помочь?

1 Ответ

0 голосов
/ 28 февраля 2019

Используя , вы можете сделать:

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

Если вам нужно установить страну для первых 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...