#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 .