[sqlite] 쉘 스크립트를 사용하여 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”에 저장되지 않고 화면에 나타납니다. 명령 줄에서 동일한 방법으로 작동하지만 쉘 스크립트가 데이터를 파일로 내 보내지 못하는 이유를 모르겠습니다.
내가 도대체 뭘 잘못하고있는 겁니까?
답변
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
을 무시할 수 있습니다.
답변
점 명령 대신 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 파일로 데이터를 전송하는 데 신경 쓰이는 사람들은 거의 없다고 생각합니다.
SQLite Manager 확장을 사용하여 firefox 브라우저로 수행하는 매우 편리한 방법을 찾았습니다.
파이어 폭스의 sqlite 데이터베이스 파일 (SQlite 관리자-> 데이터베이스 연결)에 연결 한 다음 테이블-> 테이블 내보내기 만하면됩니다. 클릭하고 시도 할 수있는 더 많은 옵션이 제공됩니다 ….
결국 당신은 테이블 u가 내보내기로 선택한 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
이제 시스템에서 example.csv 파일을 검색하면 얻을 수 있습니다.