SELECT文の実行結果などをファイルへ出力する

コマンドラインツールで SELECT 文を実行したり SQLite のコマンドを実行するとその結果は画面に表示されますが、 .output コマンドを使うと画面ではなくファイルへ出力するように変更できます。ここでは SQLite における .output コマンドを使って出力先をファイルへ変更する方法について解説します。

(Last modified: )

出力先をファイルへ変更する

SELECT 文などの実行結果を画面からファイルへ変更できる .output コマンドの使い方は次の通りです。

.output ?FILENAME?

引数に出力先のファイル名を指定します。ファイル名は SQLite のコマンドラインツールを実行したカレントディレクトリからの相対パス又は絶対パスで指定して下さい。出力先をファイルではなく画面表示に戻す場合には引数に stdout を指定します。

例として c:\test\sqlite\userdata.txt というファイルを読み込んで user テーブルにインポートする場合は次のように実行します。 (下記はカレントディレクトリが c:\pg\sqlite3 の場合です)。

例として出力先を c:\test\sqlite\logdata.txt へ行う場合は次のように実行します。(下記はカレントディレクトリが c:\pg\sqlite3 の場合です)。

絶対パスの場合:
.output c:/test/sqlite/logdata.txt

相対パスの場合:
.output ../../test/sqlite/logdata.txt

※ Windows 環境の場合でも、ファイルの区切り文字は \ ではなく スラッシュ(/) を使用して下さい。

ファイル名を指定して .output コマンドを実行すると、 SELECT 文の実行結果だけではなく画面へ出力されていたものは全て指定したファイルへ行われるようになります。指定したファイルが存在しないときは新規にファイルを作成した上で出力され、存在するファイルを指定した場合は追加される形で出力されます。

現在設定されている出力先を確認したい場合には .show コマンドを使用して下さい。

.show

出力先をファイルへ変更する(1)

output の項目を見ると現在の設定は stdout となっており現時点で何か出力が伴うことを行うと画面に対して行われます。

出力先をファイルへ変更する(2)

この .show コマンドの実行結果も画面に表示されていますし、次のような SELECT 文を実行した場合も結果は画面に表示されます。

select * from staff;

出力先をファイルへ変更する(3)

それでは出力先をファイルへ変更してみます。今回はカレントディレクトリの logdata.txt というファイル名へ出力するようにしました。

.output ./logdata.txt

出力先をファイルへ変更する(4)

それでは先ほどと同じ SELECT 文を実行してみます。今度は実行結果が画面に表示されません。実行結果は出力先に指定したファイルへ書き込まれています。

select * from staff;

出力先をファイルへ変更する(5)

カレントディレクトリには logdata.txt というファイルが作成されています。今回はもともと存在しないファイルへ出力しましたので新しいファイルが作成されています。

出力先をファイルへ変更する(6)

logdata.txt ファイルをテキストエディタで開くと次のように SELECT 文を実行した結果が書き込まれています。

出力先をファイルへ変更する(7)

出力先の現在の設定を確認してみます。次のように .show コマンドを実行して下さい。

.show

出力先をファイルへ変更する(8)

.show コマンドの実行結果も画面ではなくファイルへ出力されているため画面上では何も表示されません。現在出力先として設定してある logdata.txt ファイルをテキストエディタで開いて下さい。

出力先をファイルへ変更する(9)

先ほどと違って出力先のファイルは既に存在しているため、既存のファイルに追加する形で .show コマンドの実行結果が書き込まれています。 output の項目を見て頂くと出力先がファイル名に設定されていることが確認できます。

出力先を画面に戻す

.output コマンドを使った出力先の変更が有効なのはデータベースに接続していある間だけです。データベースに接続している間にまた出力先をファイルから画面に戻す場合には、特別な値 stdout を引数に指定して .output コマンドを実行して下さい。

.output stdout

出力先を画面に戻す(1)

これで出力先がファイルから画面に戻りました。では改めて SELECT 文を実行してみます。

select * from staff;

出力先を画面に戻す(2)

SELECT 文の実行結果が画面に表示されました。

-- --

.output コマンドを使って SELECT 文などの出力先をファイルへ変更する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。