ファイルに対して出力を行う

SELECT文などを実行すると、実行結果が画面に対して出力されます。SQLiteでは「.output」コマンドを使って出力結果を画面ではなくファイルに対して行うことができます。使い方は次の通りです。

.output FILENAME

1番目の引数には出力を行いたいファイル名を指定します。

例えば「uriage」テーブルから取得したデータを「output.txt」ファイルに出力する場合は次のようにコマンドを実行します。

.output output.txt

このコマンドを実行すると今後出力は全てファイルに対して行われます。出力が行われた時、指定したファイルが存在しないときは新規にファイルを作成した上で出力します。また既に存在したファイルを指定した場合、既存の内容に追加で書き込みが行われます。

なお出力先をファイルから画面に戻したい場合には次のコマンドを実行します。

.output stdout

現在設定されている出力先は「.show」コマンドで確認できます。

p3-1

表示された値の中で「output: stdout」と表示されている部分が現在の出力先となっています。では出力先をファイルにしてみます。

p3-2

出力先を変更後に「.show」コマンドで確認しようとしましたが、「.show」コマンドの実行結果もファイルに対して行われるため画面上には表示されません。その為、出力先として指定したファイルの中身を確認してみます。

     echo: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: ./data/output.txt
separator: ","
    width: 

「output: ./data/output.txt」と変更されていることが確認できます。

「.output」コマンドは画面に出力される内容をそのままファイルに出力するだけなので、例えばSELECT文を実行した結果をファイルに出力する場合、どのような形式で出力が行われるのかについては画面出力の場合と同様に「.separator」コマンドや「.mode」コマンドによって変更することができます。詳しくは「SQLiteコマンドの使い方」を参照して下さい。

サンプル

では実際に試してみます。

次のようなテーブルを対象にします。

p3-3

区切り文字をカンマ(,)に変更し、ヘッダーを表示するように変更します。

p3-4

では出力先をファイルに変更した後でSELECT文を実行してみます。

p3-5

ではファイルをテキストエディタで開いてみます。

p3-6

SELECT文の実行結果がファイルに対して出力されていることが確認できました。

なお「.output」コマンドで出力先をファイルに設定している場合、そのファイルをテキストエディタで開こうとすると読み込み専用でしか開くことができません。別のファイルを出力先として指定するか、出力先を画面に戻すとファイルは読み書きできる状態で開くことができます。