bashから直接複数のsqlite3のコマンドを叩く

通常、sqlite3のコマンドを叩くときは、bashから

$ sqlite3 <db_file_path>

で接続してSELECTなりINSERTなり作業するが、これを直接bashからやりたいときがある。

bashから直接sqlite3のコマンドを叩くときは

$ sqlite3 <db_file_path> "<sqlite3_cmd>"

のようにする。
例えば、

$ sqlite3 ./hoge.sqlite3 "CREATE TABLE hoge(hoge1, hoge2);"

のようになる。

ただ、このままだと1つのコマンドしか実行できない。
複数のコマンドを実行したいときは、

$ sqlite3 ./hoge.sqlite3 -cmd ".mode csv" "SELECT * FROM hoge;"

とcmdオプションを指定する。

また、出力をcsvなどに切り替えるときは

$ sqlite3 -csv ./hoge.sqlite3 "SELECT * FROM hoge;"

のように書ける。sqlite3 –helpで見れば出てくるが、何故か自分の環境(ver3.22.0)ではtabsとかが無く、設定できるのはascii、column、csv、line、list、quoteだけだった。。。

結果が取れたらパイプで渡して美味しく調理しましょう。

コメント

タイトルとURLをコピーしました