2019年10月30日水曜日

SQLite3 コマンドの実行結果の出力先を変更する「.once」について

概要

SQLite3 のコマンドラインツールでコマンドやSQLの実行結果を ファイルに出力する方法について。
似たコマンドに 「 .output 」がある。

環境

  • Windows 10 64bit
  • SQLite3 ver.3.29.0

ヘルプの内容


sqlite> .help .once
.once (-e|-x|FILE)       Output for the next SQL command only to FILE
If FILE begins with '|' then open as a pipe
Other options:
    -e    Invoke system text editor
    -x    Open in a spreadsheet
                

テキストファイルに出力する


sqlite> .once sample.txt
sqlite> select * from sample_table;
sqlite> 
                

テキストエディタで表示する

テキストエディタが起動して表示される。
そこから編集したり保存しなおしたりできる。


sqlite> .once -e
sqlite> select * from sample_table;
sqlite>
                

スプレッドシートとして表示する

CSVエディタが起動して表示される。
そこから編集したり保存しなおしたりできる。
.excel」コマンドとほぼ同じ。
sqliteの文字コードがutf-8のため、Microsoft Excelでは文字化けしてしまう。


sqlite> .once -x
sqlite> select * from sample_table;
sqlite>
                

Select文以外も出力できる

例えば、ヘルプをテキストファイルに保存しておきたい場合は・・・


sqlite> .once help.txt
sqlite> .help
sqlite>
                

パイプを使って別のコマンドに渡す

コマンドプロンプトやbashでおなじみのパイプ「|」で 出力結果を他のコマンドに渡すことができる。
こちらも文字コードの都合上、文字化けするのことがある。


sqlite> select * from sample_table
1|test001
2|sample002
sqlite> .once '| findstr test'
sqlite> select * from sample_table
1|test001
                

参考URL