DRAKON.SU https://forum.drakon.su/ |
|
Bash скрипт создания JSON из drn под макось https://forum.drakon.su/viewtopic.php?f=145&t=7486 |
Страница 1 из 1 |
Автор: | pme [ Понедельник, 13 Октябрь, 2025 22:34 ] |
Заголовок сообщения: | Bash скрипт создания JSON из drn под макось |
Привет! Код: #!/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 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |