Я делаю сценарий оболочки для экспорта запроса 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. Он работает с тем же методом с командной строкой, но я не знаю, почему сценарий оболочки не может экспортировать данные в файл.
Что я делаю не так?
<<! ... !
именно то, что мне нужно. Спасибо.Вместо команд с точкой вы можете использовать параметры команды 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
для просмотра списка доступных опций.источник
Недавно я создал сценарий оболочки, который сможет брать таблицы из файла db и преобразовывать их в файлы csv.
https://github.com/darrentu/convert-db-to-csv
Не стесняйтесь задавать мне любые вопросы по моему сценарию :)
источник
Хотя вопрос касается сценария оболочки, я думаю, что он поможет немногим из тех, кто просто озабочен переносом данных из базы данных sqlite3 в файл csv.
Я нашел очень удобный способ сделать это с помощью браузера Firefox, используя расширение SQLite Manager.
Просто подключитесь к файлу базы данных sqlite в firefox (менеджер SQlite -> подключите базу данных), а затем Table -> Export table. Вам будет предложено еще несколько вариантов, которые вы можете просто щелкнуть и попробовать ....
В итоге вы получите CSV-файл с таблицей, которую вы выбрали для экспорта.
источник
Using command line for Linux: user@dell-Admin: sqlite3 #activate your sqlite database first sqlite> .tables #search for tables if any available if already created one. sqlite> .schema #if you want to check the schema of the table. # once you find your table(s), then just do the following: sqlite> .headers on #export along with headers (column names) sqlite> .mode csv #file type is csv sqlite> .output example.csv #you want to provide file name to export sqlite> SELECT * from events; #If entire table is needed or select only required sqlite> .quit #finally quit the sqlite3
источник