Etman (Easy Text Manipulator)

Описание

Etman — это простая и удобная альтернатива awk и sed, предназначенная для работы с текстом. Она обладает асинхронной природой и предоставляет богатый набор инструментов для редактирования текста и извлечения информации. Etman упрощает создание парсеров для различных форматов данных, таких как JSON, CSV, XML и другие.

Основные возможности

  • Поддержка работы с различными форматами данных (JSON, CSV, XML, YAML и др.).
  • Асинхронная обработка больших файлов.
  • Богатый набор команд для редактирования текста.
  • Гибкая система фильтрации и трансформации данных.
  • Возможность использования конвейеров (pipelines).
  • Удобный синтаксис для парсинга данных.

Пример использования

Предположим, у нас есть JSON-файл размером 100 МБ с сообщениями пользователей. Мы хотим извлечь имена всех отправителей.

Пример структуры JSON:

{
  "messages": [
    {
      "sender": "sender",
      "text": "text"
    },
    {
      "sender": "sender 2",
      "text": "text"
    }
  ]
}

С помощью Etman можно выполнить эту задачу одной командой:

cat messages.json | etman -e "json | query 'messages | [_] | sender' | unique"

Разбор команды:

  • json — парсинг входных данных как JSON.
  • query 'messages | [_] | sender' — извлечение всех значений sender из массива messages.
  • unique — удаление повторяющихся значений.

Дополнительные примеры

Замена всех вхождений слова “foo” на “bar” в текстовом файле

cat file.txt | etman -e "replace 'foo' 'bar'" > file.txt

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

cat file.txt | etman -e "lines | count"