вставить новые строки в файл csv, полученный с помощью curl на api

Я пытаюсь заменить строку в текстовом файле, который является файл CSV. Строка разделителя строк имеет вид {"id": , и вы хотите вставлять новую строку перед каждым ее появлением, поскольку файл CSV отображается только как одна строка и все столбцы.

В идеале мне нужно, чтобы файл был разделен запятыми, переводя его в столбцы, и везде {"id": " встречается для перевода в новую строку, т.е. новая строка

, каждый столбец должен быть разделен by «*»: , где * обозначает любой текст, например: «TLP»: или «id»:

Образец файла приведен ниже, а образец текста должен содержать 3 строки и столбец для каждой метки

Извините за болезненный вопрос, однако я пробовал все комбинации sed и awk, которые только мог придумать, и ничего не работает

{"id": "5863ddde2577f521dccd9a3a "," name ":" Switcher: Android присоединяется к клубу атакующих маршрутизаторов "," description ":" Недавно в нашем нескончаемом стремлении защитить мир от вредоносных программ мы обнаружили плохо себя ведет троян Android. Хотя вредоносное ПО, нацеленное на ОС Android, довольно давно перестало быть новинкой, этот троян довольно уникален. Вместо того, чтобы атаковать пользователя, он атакует сеть Wi-Fi, к которой подключен пользователь, или, если быть точным, беспроводной маршрутизатор, обслуживающий сеть. Троян, получивший название Trojan.AndroidOS.Switcher, выполняет атаку методом подбора пароля на веб-интерфейс администратора маршрутизатора. В случае успеха вредоносная программа изменяет адреса DNS-серверов в настройках маршрутизатора, перенаправляя все DNS-запросы от устройств в атакованной сети Wi-Fi на серверы злоумышленников (такая атака также известна как DNS-hijacking. ). Итак, давайте подробно объясним, как Switcher выполняет свои атаки методом перебора, проникает в маршрутизаторы и выполняет DNS-захват. "," Author_name ":" AlienVault "," modified ":" 2016-12-28T15: 44: 30.187000 "," created ":" 2016-12-28T15: 44: 30.187000 "," tags ": [" android "," baidu "," android "," mobile "," dns hijack "," Trojan.AndroidOS. Switcher »,« Kaspersky »],« ссылки »: [« hxxps: //securelist.com/blog/mobile/76969/switcher-android-joins-the-attack-the-router-club/ »],« revision » : 1.0, "индикаторы": [{"content": "", "indicator": "acdb7bfebf04affd227c93c97df536cf", "description": "", "created": "2016-12-28T15: 44: 31", "is_active" : 1, "title": "", "access_reason": "", "access_type": "public", "access_groups": [], "role": null, "expiration": null, "type": "FileHash -MD5 "," id ": 1744766," наблюдения ": 1}, {" content ":" "," indicator ":" 64490fbecefa3fcdacd41995887fe510 "," description ":" "," created ":" 2016-12-28T15 : 44: 31 "," is_active ": 1," title ":" "," access_reason ":" "," access_type ":" public "," access_groups ": []," role ": null," expiration " : null, "тип": "FileHash-MD5", "id": 1744767, "наблюдения": 1}, {"content": "", "indicator": "101.200.147.153 "," description ":" "," created ":" 2016-12-28T15: 44: 31 "," is_active ": 1," title ":" "," access_reason ":" "," access_type ": "public", "access_groups": [], "role": null, "expiration": null, "type": "IPv4", "id": 1744768, "наблюдения": 1}, {"content": " "," indicator ":" 112.33.13.11 "," description ":" "," created ":" 2016-12-28T15: 44: 31 "," is_active ": 1," title ":" "," access_reason ":" "," access_type ":" public "," access_groups ": []," role ": null," expiration ": null," type ":" IPv4 "," id ": 1744769," наблюдения ": 1}, {"content": "", "indicator": "120.76.249.59", "description": "", "created": "2016-12-28T15: 44: 31", "is_active": 1, "title": "", "access_reason": "", "access_type": "public", "access_groups": [], "role": null, "expiration": null, "type": "IPv4", " id ": 1744770," наблюдения ": 1}]," TLP ":" зеленый "," public ": true," adversary ":" "," target_countries ": [" China "]," industries ": [] }, {"id": "585bdcd497316a2db901eaa5", "name": "Необычное слежение за медведями украинских подразделений полевой артиллерии", "description": "В конце лета 2016 года аналитики CrowdStrike Intelligence начали расследование любопытный Android Package (APK) под названием «Попр-Д30.apk», который содержал ряд русскоязычных артефактов, которые носили военный характер. Первоначальные исследования показали, что название файла предполагает связь со 122-мм буксируемой гаубицей Д-30 - артиллерийским орудием, впервые произведенным в Советском Союзе в 1960-х годах, но используемым до сих пор. Тщательный обратный инжиниринг показал, что APK содержит Android-вариант X-Agent, протокол управления и контроля был тесно связан с наблюдаемыми вариантами X-Agent для Windows и использовал криптографический алгоритм под названием RC4 с очень похожим 50-байтовым базовым ключом."," author_name ":" AlienVault "," изменено ":" 2016-12-22T14: 03: 53.674000 "," создано ":" 2016-12-22T14: 01: 56.495000 "," теги ": [" apt28 " , "модный медведь", "украина", "милитари", "Икс-агент", "Д-30", "краудстрайк"], "отсылки": ["hxxps: //www.crowdstrike.com/blog/danger -close-fancy-bear-tracking-ukrainian-field-artillery-units / "," hxxps: //www.crowdstrike.com/wp-content / brochures / FancyBearTracksUkrainianArtillery.pdf "]," revision ": 2.0," sizes ": [{" content ":" "," indicator ":" 69.90.132.215 "," description ":" "," created ": "2016-12-22T14: 01: 57", "is_active": 1, "title": "", "access_reason": "", "access_type": "public", "access_groups": [], "role" : "command_and_control", "expiration": null, "type": "IPv4", "id": 1683228, "наблюдения": 1}, {"content": "", "indicator": "6f7523d3019fa190499f327211e01fcb", "description ":" "," created ":" 2016-12-22T14: 01: 57 "," is_active ": 1," title ":" "," access_reason ":" "," access_type ":" public "," access_groups ": []," role ": null," expiration ": null," type ":" FileHash-MD5 "," id ": 1683229," наблюдения ": 2}]," TLP ":" зеленый ", "public": true, "adversary": "Fancy Bear", "target_countries": ["Украина"], "industries": ["Defense", "military"]}, {"id": "585ae32297316a22f301eaa5", " name ":" Поддельные приложения используют релиз Super Mario Run "," description ":« Ранее в этом году мы говорили о том, как киберпреступники воспользовались популярностью Pokemon Go для запуска собственного вредоносного приложения. pps. По мере того, как 2016 год подходит к концу, мы наблюдаем то же самое, что происходит с другим игровым ресурсом Nintendo: Super Mario. \ N \ nВ преддверии любого официального релиза киберпреступники уже выпустили свои собственные приложения, связанные с Mario. С 2012 года мы нашли более 9000 приложений, использующих имя Марио в различных источниках в Интернете. Примерно две трети этих приложений демонстрируют какое-либо вредоносное поведение, включая отображение рекламы и загрузку приложений без согласия пользователя. "," Author_name ":" AlienVault "," modified ":" 2016-12-21T20: 16: 34.201000 " , «created»: «2016-12-21T20: 16: 34.201000 »,« теги »: [« super mario »,« android »,« mario »,« nintendo »,« google play »,« вредоносное ПО »,« trendmicro »],« ссылки »: [« hxxp: // blog .trendmicro.com / trendlabs-security-Intelligence / fake-apps-take-преимущества-mario-run-release / "]," revision ": 1.0," sizes ": [{" content ":" "," indicator " : "8373aedc9819ff5dacb0fc1864eeb96adc5210b2", "description": "", "created": "2016-12-21T20: 16: 35", "is_active": 1, "title": "", "access_reason": "", "access_type ":" public "," access_groups ": []," role ": null," expiration ": null," type ":" FileHash-SHA1 "," id ": 1674453," наблюдения ": 1}, {" content ":" "," indicator ":" 4ba312a6eaf79da9036d4228a43f19c611345a5a "," description ":" "," created ":" 2016-12-21T20: 16: 35 "," is_active ": 1," title ":" ", «access_reason»: «», «access_type»: «public», «access_groups»: [], «role»: null, «expiration»: null, «type»: «FileHash-SHA1», «id»: 1674454, "наблюдения": 1}], "TLP": "зеленый", "общедоступный": истина, "противник": "", "target_countries": [], "industries": []}]

-1
29.12.2016, 13:37
2 ответа

Как отмечали другие, этот файл является JSON, а не CSV, и вам действительно следует использовать для него специальный анализатор JSON.

Если это нужно запустить где-то, где библиотека JSON недоступна, то разделение массива на три строки в стиле CSV - достаточно простая проблема для сценария sed :

s/},{"id":/\
"id":/g        # remove delimiter between records, insert newline
s/^\[\?{//     # remove delimiter before first record
s/}\]\?$//     # remove delimiter after last record
1
28.01.2020, 05:10

Не совсем ответ: просто быстрый пример jq :

(После добавления символа "[", который отсутствует в начало ввода)

мы можем извлечь значения id , author_name и TLP с помощью:

$ jq '.[] | .id + ":" + .author_name + ":" + .TLP'   input
"5863ddde2577f521dccd9a3a:AlienVault:green"
"585bdcd497316a2db901eaa5:AlienVault:green"
"585ae32297316a22f301eaa5:AlienVault:green"
0
28.01.2020, 05:10

Теги

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