Eksport z sqlite do csv za pomocą skryptu powłoki
Robię skrypt powłoki, aby wyeksportować zapytanie SQLite do pliku csv, tak jak to:
#!/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"
Podczas wykonywania skryptu, wyjście pojawia się na ekranie, zamiast być zapisywane do " out.csv". Działa w ten sam sposób z wierszem poleceń, ale nie wiem dlaczego skrypt powłoki nie wyeksportuje danych do pliku.
Co robię źle?4 answers
Sqlite3
Masz osobne wywołanie do sqlite3
dla każdej linii; do czasu uruchomienia select
, twoje .out out.csv
zostało zapomniane.
Spróbuj:
#!/bin/bash
./bin/sqlite3 ./sys/xserve_sqlite.db <<!
.headers on
.mode csv
.output out.csv
select * from eS1100_sensor_results;
!
Zamiast tego.
Metody sh/bash
Możesz wywołać skrypt przekierowaniem:
$ your_script >out.csv
Lub możesz wstawić następujący wiersz w swoim skrypcie:
exec >out.csv
Pierwsza metoda pozwala określić różne nazwy plików, podczas gdy druga wyświetla konkretną nazwę pliku. W obu przypadkach linia .output out.csv
może być ignorowana.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-04 01:01:52
Zamiast poleceń dot, możesz użyć opcji poleceń sqlite3:
sqlite3 -header -csv my_db.db "select * from my_table;" > out.csv
To sprawia, że jest to jednoliniowy.
Możesz również uruchomić plik skryptu sql:
sqlite3 -header -csv my_db.db < my_script.sql > out.csv
Użyj sqlite3 -help
, aby zobaczyć listę dostępnych opcji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-12 22:38:14
Niedawno stworzyłem skrypt powłoki, który będzie mógł pobierać tabele z pliku db i konwertować je do plików csv.
Https://github.com/darrentu/convert-db-to-csv
Zapraszam do zadawania pytań na moim skrypcie:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-21 21:56:19
Chociaż pytanie dotyczy skryptu powłoki, to myślę, że pomoże to kilku osobom, którym tylko przeszkadza przeniesienie danych z bazy danych sqlite3 do pliku csv.
Znalazłem bardzo wygodny sposób, aby to zrobić z przeglądarką firefox za pomocą rozszerzenia SQLite Manager.
Po prostu podłącz się do pliku bazy danych SQLite w Firefoksie (menedżer SQlite -> połącz bazę danych), a następnie Table -> Eksportuj tabelę. Otrzymasz więcej opcji, które możesz po prostu kliknąć i spróbuj....
Na końcu otrzymasz plik csv z wybraną tabelą do wyeksportowania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-05 19:12:50