используя jq против grep / sed

Поиск текста твита по следующей схеме: e, «текст»:

Мне предложили не использовать grep и использовать jq, но jq кажется довольно трудным для новичка. Интересно, каковы мои варианты поиска шаблона, подобного приведенному выше, в файле json, который содержит около 100 твитов. Вот фрагмент файла json:

 {
        "favorited": false, 
        "contributors": null, 
        "truncated": false, 
        "text": "RT @Shakti_Shetty: Hillary Clinton is killing it mad for the first time since Benghazi. \n\n#DebateNight", 
        "is_quote_status": false, 
        "in_reply_to_status_id": null, 
        "user": {
            "follow_request_sent": false, 
            "has_extended_profile": false, 
            "profile_use_background_image": true, 
            "time_zone": null, 
            "id": 1082649110, 
            "description": "words are who someone wants to be..\nACTIONS are who they truly are. if you want peace in life please don't assume don't over-think & be a nonjudgemental person", 
            "default_profile": true, 
            "verified": false, 
            "entities": {
                "description": {
                    "urls": []
                }
            }, 
            "profile_image_url_https": "https://pbs.twimg.com/profile_images/691152324291661824/kr2IsMs8_normal.jpg", 
            "profile_sidebar_fill_color": "DDEEF6", 
            "is_translator": false, 
            "geo_enabled": false, 
            "profile_text_color": "333333", 
            "followers_count": 162, 
            "protected": false, 
            "id_str": "1082649110", 
            "default_profile_image": false, 
            "listed_count": 25, 
            "lang": "en", 
            "utc_offset": null, 
            "statuses_count": 38396, 

Вот еще один:

{
        "favorited": false, 
        "contributors": null, 
        "truncated": true, 
        "text": "Wikileaks: NYT\u2019s Amy Chozick Privately Praised Hillary for Strong Connection with Working Class\u2026 https://t.co/bXUEHwEccE", 
        "possibly_sensitive": false, 
        "is_quote_status": false, 
        "in_reply_to_status_id": null, 
        "user": {
            "follow_request_sent": false, 
            "has_extended_profile": false, 
            "profile_use_background_image": true, 
            "time_zone": null, 
            "id": 763916668171149312, 
            "description": "We show you the truth Hot Breaking news, USA politics, Trump and conservative support", 
            "default_profile": true, 
            "verified": false, 
            "entities": {
                "description": {
                    "urls": []
                }
            }, 
            "profile_image_url_https": "https://pbs.twimg.com/profile_images/763917371702513664/IPlCWEqa_normal.jpg", 
            "profile_sidebar_fill_color": "DDEEF6", 
            "is_translator": false, 
            "geo_enabled": false, 
            "profile_text_color": "333333", 
            "followers_count": 155, 
            "protected": false, 
            "id_str": "763916668171149312", 
            "default_profile_image": false, 
            "listed_count": 3, 
            "lang": "es", 
            "utc_offset": null, 
            "statuses_count": 14162, 
            "profile_background_color": "F5F8FA", 
            "friends_count": 295, 
            "profile_link_color": "1DA1F2", 
            "profile_image_url": "http://pbs.twimg.com/profile_images/763917371702513664/IPlCWEqa_normal.jpg", 
            "notifications": false, 
            "profile_background_image_url_https": null, 
            "profile_banner_url": "https://pbs.twimg.com/profile_banners/763916668171149312/1470967188", 
            "profile_background_image_url": null, 
            "name": "Politic Manager", 

Сам файл очень большой, и я не знаю, где я мог бы поделиться им свободно (предложения принят).

В более широком масштабе у меня есть 500 тыс. Таких json-файлов, которые мне нужно обработать, подсчитать количество твитов в них и извлечь другие типы информации, включая текст твита.

0
задан 16 January 2018 в 03:55

1 ответ

Я предполагаю, что ваш JSON-файл содержит список объектов твитов, которые вы получаете при выгрузке временной шкалы из API Twitter.

Подсчитайте количество твитов:

jq '. | length' tweets.json

Получите поле text каждого твита:

jq '.[] | .text' tweets.json

Из поля text каждого твита получите часть, которая соответствует регулярному выражению leak.*:

jq '.[] | .text | scan("leak.*")' tweets.json
1
ответ дан 16 January 2018 в 03:55

Другие вопросы по тегам:

Похожие вопросы: