概要
ひとつのカラムに長いテキスト等が入っていると、 コマンドラインツールでは表示が横に伸びて見づらくなってしまう。
.mode
コマンドに--wrap
オプションを指定することで
カラム内のデータを改行させることができる。
--wrap
オプションはバージョン3.38.0より利用可能。
構文
.mode ?mode_name? --wrap N
実行例
- カラムの幅を10に変更する
-
カラムの幅を2に変更する
ヘッダを表示している場合、ヘッダは改行されないので注意する。 - デフォルトのカラム幅に戻す
sqlite> -- # 1.
sqlite> .headers on
sqlite> .mode box
sqlite> select * from sample;
┌──────┬───────────┬──────────────────┐
│ id │ name │ mail │
├──────┼───────────┼──────────────────┤
│ 1111 │ name_1111 │ 1111@example.com │
│ 2222 │ name_2222 │ 2222@example.com │
└──────┴───────────┴──────────────────┘
sqlite> -- # 2.
sqlite> .mode box --wrap 10
sqlite> select * from sample;
┌──────┬───────────┬────────────┐
│ id │ name │ mail │
├──────┼───────────┼────────────┤
│ 1111 │ name_1111 │ 1111@examp │
│ │ │ le.com │
├──────┼───────────┼────────────┤
│ 2222 │ name_2222 │ 2222@examp │
│ │ │ le.com │
└──────┴───────────┴────────────┘
sqlite> -- # 3.
sqlite> .mode box --wrap 2
sqlite> select * from sample;
┌────┬────┬────┐
│ id │ na │ ma │
├────┼────┼────┤
│ 11 │ na │ 11 │
│ 11 │ me │ 11 │
│ │ _1 │ @e │
│ │ 11 │ xa │
│ │ 1 │ mp │
│ │ │ le │
│ │ │ .c │
│ │ │ om │
├────┼────┼────┤
│ 22 │ na │ 22 │
│ 22 │ me │ 22 │
│ │ _2 │ @e │
│ │ 22 │ xa │
│ │ 2 │ mp │
│ │ │ le │
│ │ │ .c │
│ │ │ om │
└────┴────┴────┘
sqlite> -- # 4.
sqlite> .mode box
sqlite> select * from sample;
┌──────┬───────────┬──────────────────┐
│ id │ name │ mail │
├──────┼───────────┼──────────────────┤
│ 1111 │ name_1111 │ 1111@example.com │
│ 2222 │ name_2222 │ 2222@example.com │
└──────┴───────────┴──────────────────┘
「.width」コマンドと組み合わせる
--wrap
オプションを使うと全てのカラムの幅が変更されてしまうが、
.width
コマンドを使用することでカラム幅をある程度コントロール出来る。
sqlite> .mode box --wrap 5
sqlite> select * from sample;
┌──────┬───────┬───────┐
│ id │ name │ mail │
├──────┼───────┼───────┤
│ 1111 │ name_ │ 1111@ │
│ │ 1111 │ examp │
│ │ │ le.co │
│ │ │ m │
├──────┼───────┼───────┤
│ 2222 │ name_ │ 2222@ │
│ │ 2222 │ examp │
│ │ │ le.co │
│ │ │ m │
└──────┴───────┴───────┘
sqlite> .width 4 5 10
sqlite> select * from sample;
┌──────┬───────┬────────────┐
│ id │ name │ mail │
├──────┼───────┼────────────┤
│ 1111 │ name_ │ 1111@examp │
│ │ 1111 │ le.com │
├──────┼───────┼────────────┤
│ 2222 │ name_ │ 2222@examp │
│ │ 2222 │ le.com │
└──────┴───────┴────────────┘
日本語は ずれてしまう
日本語に限らずマルチバイト文字は以下の実行例のように見た目が崩れてしまう。 これは諦めるしかない。
sqlite> .mode box --wrap 5
sqlite> select * from sample;
┌────┬───────┬───────┐
│ id │ name │ mail │
├────┼───────┼───────┤
│ 1 │ test_ │ 1111@ │
│ │ 1111 │ examp │
│ │ │ le.co │
│ │ │ m │
├────┼───────┼───────┤
│ 2 │ 吾輩は猫で │ 2222@ │
│ │ ある。名前 │ examp │
│ │ はまだない │ le.co │
│ │ │ m │
└────┴───────┴───────┘
参考URL
-
Command Line Shell For SQLite
公式のコマンドラインツールに関するドキュメント
https://www.sqlite.org/cli.html -
公式のカラム表示に関するドキュメント
https://www.sqlite.org/cli.html#clmnr