初めに
Qiita Engineer Festa 2024に参加中。完走目指してます。
他のバックスラッシュコマンドについては以下から読んでください。
\oとは
以降の問い合わせの結果を、
*filename*
で指定されたファイルに保存するか、またはシェルコマンド*command*
にパイプで渡すようにします。 引数がない場合、問い合わせの出力はリセットされて標準出力になります。引数が
|
で始まっている場合、行の残りの部分はすべて実行する*command*
であると解釈され、その中では変数の置換も逆引用符の展開も行われません。 行の残り部分は、単にあるがままにシェルに渡されます。「問い合わせの結果」には、全てのテーブル、コマンドの応答、データベースサーバからの注意メッセージだけでなく、データベースに問い合わせを行う(
\d
のような)各種バックスラッシュコマンドの出力が含まれます。ただし、エラーメッセージは含まれません。
試してみた
output.txtに出力してみる
\o /tmp/output.txt
SELECT * FROM uses;
\dt
\o
output.txtに実行結果が出力されている。
最後の\oでファイルへの出力を終了して標準出力になる。
パイプを利用することもできるが以下はできない。
Bobのレコードだけが出力できるかと思ったのですが。
\o | grep Bob > output.txt
select * from users;
まとめ
ログを残すのに使うと漏れがなさそうですが、標準出力にでないので用途としては向いていない。
使い所はすぐに思いつかなかったです。
参考