0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CSVファイルをインポートしてSQLite3のデータベースを無から作るシェルスクリプト

Posted at

SQLite3でのCSVインポート方法概要

SQLite3でのDB作成コマンド

$ sqlite3 database_name.db
SQLite version 3.39.5 2022-10-14 20:58:05
Enter ".help" for usage hints.
sqlite>

以下を流すと開いた際の引数のファイル名でDBが作成される

sqlite> .database

CSVインポートは以下

sqlite> .mode csv
sqlite> .import path/to/file.csv table_name

スクリプト

複数のCSVファイルからテーブルを一気に作りたかったので以下を作成した。

create_sqlite3_with_csv.sh
#!/bin/sh

if [ -p /dev/stdin ]; then
  FILES=`cat -`
else
  FILES=`echo $@`
fi
# echo ${FILES}

DB_NAME="file.db"
#`sqlite3 ${DB_NAME} ".database"`

FILE_COUNT=`echo $FILES | tr ' ' '\n' | wc -l`
for i in `seq $FILE_COUNT`
do
  FILE_PATH=`echo $FILES | cut -d ' ' -f $i`
  FILE=${FILE_PATH##*/}
  NAME=${FILE%.*}
  #echo $FILE_PATH
  #echo $NAME
  `sqlite3 ${DB_NAME} ".mode csv" ".import ${FILE_PATH} ${NAME}"`
done

シンボリックリンクを作る

$ ln -s create_sqlite3_with_csv.sh /usr/local/bin/create_sqlite3_with_csv

使い方

$ create_sqlite3_with_csv path/to/*.csv

で、path/to フォルダにあるCSVファイルを元に、
コマンドを流した直下に file.db というファイル名のSQLite3のDBが作成する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?