как извлечь значение (‘uid’) с помощью регулярного выражения или grep из этого json?

#json #regex #grep

#json #регулярное выражение #grep

Вопрос:

У меня ниже ответ API JSON:

https://gist.github.com/mzaboss/944d30a1c29796cbe8dbb6aa95d7e20e

Я хотел бы извлечь значения 'uid': '6904989037985481733' .

Пример:

 6904989037985481733
6775449343043519493
6864191257082741765
6790990270277551110
6846402706555601926
 

и т. д

Я пробовал cat ids.txt | grep 'uid' , с неудачной попыткой.

Как сделать точный grep? пожалуйста

Спасибо, с уважением.

Комментарии:

1. Похоже jq , это может помочь.

2. пожалуйста, команда @sp00m?

3. Пожалуйста, добавьте свой JSON в свой вопрос (без ссылок, без комментариев).

4. @Cyrus gist.github.com/mzaboss/944d30a1c29796cbe8dbb6aa95d7e20e он здесь.

5. JSON не кажется допустимым. Можете ли вы устранить какие-либо ошибки с помощью jsonlint.com

Ответ №1:

jq — лучший инструмент для использования с json, но, учитывая, что json из ссылки, похоже, неправильно отформатирован, вы можете использовать следующее, чтобы получить записи UID:

 grep -Eo "'uid': '[[:alnum:]] '" file.json | cut -d "'" -f 4
 

Выведите ключи и записи uid с помощью grep, а затем извлеките только значения с помощью cut .