DRAKON.SU

Текущее время: Понедельник, 20 Октябрь, 2025 07:15

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 13 Октябрь, 2025 22:34 

Зарегистрирован: Среда, 05 Декабрь, 2018 08:22
Сообщения: 29
Откуда: РФ, Тамбов
Привет!

Код:
#!/bin/bash

# Проверяем, передан ли аргумент
if [ $# -ne 1 ]; then
    echo "Использование: $0 <файл.drn>"
    exit 1
fi

input_file="$1"

# Проверяем, существует ли файл
if [ ! -f "$input_file" ]; then
    echo "Ошибка: файл $input_file не найден."
    exit 1
fi

# Проверяем, является ли файл SQLite базой данных
if ! file "$input_file" | grep -q "SQLite"; then
    echo "Предупреждение: файл $input_file может не быть SQLite базой данных (file utility не обнаружил SQLite)."
    echo "Продолжение работы..."
fi

# Имя выходного файла
output_file="${input_file%.drn}.json"

# Извлекаем все таблицы
tables=$(sqlite3 "$input_file" ".tables")

# Начинаем формировать JSON объект
echo "{" > "$output_file"

# Проходим по каждой таблице
first_table=true
for table in $tables; do
    # Получаем данные таблицы в JSON формате
    table_data=$(sqlite3 -json "$input_file" "SELECT * FROM $table;")

    # Если sqlite3 -json вернул пустую строку (а не []), заменяем на [{}]
    if [ -z "$table_data" ]; then
        table_data="[{}]"
    fi

    # Если данные пустые (например, []), заменяем на [{}]
    if [ "$table_data" = "[]" ]; then
        table_data="[{}]"
    fi

    # Добавляем запятую перед следующей таблицей, если это не первая
    if [ "$first_table" = false ]; then
        echo "," >> "$output_file"
    fi

    # Добавляем имя таблицы и её данные в JSON
    printf '"%s": %s' "$table" "$table_data" >> "$output_file"

    first_table=false
done

# Закрываем JSON объект
echo "}" >> "$output_file"

echo "Файл $input_file успешно преобразован в $output_file"


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2025, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB