Экспорт из sqlite в csv с помощью сценария оболочки
Я делаю сценарий оболочки для экспорта запроса sqlite в csv-файл, так же, как это:
#!/bin/bash
./bin/sqlite3 ./sys/xserve_sqlite.db ".headers on"
./bin/sqlite3 ./sys/xserve_sqlite.db ".mode csv"
./bin/sqlite3 ./sys/xserve_sqlite.db ".output out.csv"
./bin/sqlite3 ./sys/xserve_sqlite.db "select * from eS1100_sensor_results;"
./bin/sqlite3 ./sys/xserve_sqlite.db ".exit"
при выполнении скрипта, вывод обезьян на экране, вместо того, чтобы быть сохранены в " out.csv". Это работает тот же метод с командной строкой, но я не знаю, почему скрипт не удается экспортировать данные в файл.
что я делаю не так?
4 ответов:
sqlite3
у вас есть отдельный вызов
sqlite3для каждой строки; к тому времени вашselectработает, ваш.out out.csvбыла забыта.попробуй:
.#!/bin/bash ./bin/sqlite3 ./sys/xserve_sqlite.db <<! .headers on .mode csv .output out.csv select * from eS1100_sensor_results; !SH / bash методы
вы можете либо вызвать свой скрипт с перенаправлением:
$ your_script >out.csvили вы можете вставить первую строку в ваш скрипт:
exec >out.csvпервый метод позволяет указать различные имена файлов, в то время как последний выводит к определенному имени файла. В обоих случаях строка
.output out.csvможно пренебречь.
вместо команд dot вы можете использовать параметры команды sqlite3:
sqlite3 -header -csv my_db.db "select * from my_table;" > out.csv- Это один-лайнер.
кроме того, вы можете запустить файл сценария sql:
sqlite3 -header -csv my_db.db < my_script.sql > out.csvиспользовать
sqlite3 -helpдля просмотра списка доступных опций.
недавно я создал скрипт, который сможет взять таблицы из файла БД и конвертировать их в файлы CSV.
https://github.com/darrentu/convert-db-to-csv
Не стесняйтесь задавать мне любые вопросы по моему сценарию :)
хотя вопрос касается сценария оболочки, я думаю, что это поможет немногим из тех, кто просто беспокоится о передаче данных из базы данных sqlite3 в csv-файл.
Я нашел очень удобный способ сделать это с браузером firefox, используя расширение SQLite Manager.
просто подключитесь к файлу базы данных sqlite в firefox ( SQLite manager -> connect database), а затем Table -> Export table. Вам будут поданы еще несколько вариантов, которые вы можете просто нажмите и попробуйте....
в конце вы получаете csv-файл с таблицей, которую вы выбрали для экспорта.
Comments