У середовищі Unix є чудові інструменти для розбору тексту в різних формах. Однак, пізно, дані не є у традиційних (історичних) форматах (CSV, TSV, на основі записів чи інших обмежувачів), як це було раніше. Ці дані обмінюються в такі структуровані формати, як XML / JSON.
Я знаю, що є кілька хороших інструментів, таких як sed, awk і Perl, які можуть пережовувати майже будь-які форми даних там. Однак, щоб працювати з подібними структурованими даними, часто доводиться писати повну програму, і, враховуючи мало часу, необхідного для вилучення інформації, треба сісти і розібратися з усією логікою того, що хочеться запитувати і ставити це програматично. Іноді це не в порядку - в основному тому, що інформація, витягнута з цих файлів, діє як вхід для подальшої роботи; також через час, який потрібен на пошук відповідного рішення та кодування його. Інструмент командного рядка потрібен з достатніми комутаторами для пошуку, запиту та скидання даних.
Я шукаю інструменти, які беруть XML / JSON або інші форми структурованих даних і скидають його в інші формати, такі як csv тощо, щоб звідти можна було використовувати інші команди, щоб отримати з нього будь-яку інформацію.
Чи є утиліти командного рядка, з яких ви знаєте, які виконують цю роботу? Чи вже доступні сценарії awk / Perl для цього?
jq
є гарним інструментом для розбору JSON в оболонці: stedolan.github.io/jq