2022年6月5日日曜日

SQLite3 コマンドラインツールの表示に禁則処理を適用する(--wordwrap on)

概要

.modeコマンドに--wrapwrapオプションを指定することで 禁則処理を行うことが出来る。(ただし英語のみ)

--wrapwrapオプションはバージョン3.38.0より利用可能。

構文


.mode ?mode_name? --wordwrap on
.mode ?mode_name? --wordwrap off
                

実行例

  1. 禁則処理を有効にする
  2. 20文字で改行し、禁則処理を有効にする
  3. 元に戻す

sqlite> select * from test;
┌────┬──────────────────────────────────────────────────────────────┐
│ id │                            value                             │
├────┼──────────────────────────────────────────────────────────────┤
│ 1  │ Sunday. Monday. Tuesday. Wednesday. Thursday. Friday. Saturd │
│    │ ay.                                                          │
└────┴──────────────────────────────────────────────────────────────┘
sqlite> -- # 1.
sqlite> .mode box --wordwrap on
sqlite> select * from test;
┌────┬────────────────────────────────────────────────────────┐
│ id │                         value                          │
├────┼────────────────────────────────────────────────────────┤
│ 1  │ Sunday. Monday. Tuesday. Wednesday. Thursday. Friday.  │
│    │ Saturday.                                              │
└────┴────────────────────────────────────────────────────────┘
sqlite> -- # 2.
sqlite> .mode box --wrap 20 --wordwrap on
sqlite> select * from test;
┌────┬──────────────────────┐
│ id │        value         │
├────┼──────────────────────┤
│ 1  │ Sunday. Monday.      │
│    │ Tuesday. Wednesday.  │
│    │ Thursday. Friday.    │
│    │ Saturday.            │
└────┴──────────────────────┘
sqlite> -- # 3.
sqlite> .mode box
sqlite> select * from test;
┌────┬──────────────────────────────────────────────────────────────┐
│ id │                            value                             │
├────┼──────────────────────────────────────────────────────────────┤
│ 1  │ Sunday. Monday. Tuesday. Wednesday. Thursday. Friday. Saturd │
│    │ ay.                                                          │
└────┴──────────────────────────────────────────────────────────────┘
                

日本語には適用されない。

日本語に限らずマルチバイト文字は以下の実行例のように見た目が崩れてしまう。 これは諦めるしかない。


sqlite> select * from test;
┌────┬──────────────────────────────────────────────────────────────┐
│ id │                            value                             │
├────┼──────────────────────────────────────────────────────────────┤
│ 1  │ Sunday. Monday. Tuesday. Wednesday. Thursday. Friday. Saturd │
│    │ ay.                                                          │
├────┼──────────────────────────────────────────────────────────────┤
│ 2  │ 吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。                            │
└────┴──────────────────────────────────────────────────────────────┘
sqlite> .mode box --wordwrap on
sqlite> select * from test;
┌────┬────────────────────────────────────────────────────────┐
│ id │                         value                          │
├────┼────────────────────────────────────────────────────────┤
│ 1  │ Sunday. Monday. Tuesday. Wednesday. Thursday. Friday.  │
│    │ Saturday.                                              │
├────┼────────────────────────────────────────────────────────┤
│ 2  │ 吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。                      │
└────┴────────────────────────────────────────────────────────┘
sqlite> .mode box --wrap 15 --wordwrap on
sqlite> select * from test;
┌────┬─────────────────┐
│ id │      value      │
├────┼─────────────────┤
│ 1  │ Sunday.         │
│    │ Monday.         │
│    │ Tuesday.        │
│    │ Wednesday.      │
│    │ Thursday.       │
│    │ Friday.         │
│    │ Saturday.       │
├────┼─────────────────┤
│ 2  │ 吾輩は猫である。名前はまだ無い │
│    │ 。どこで生れたかとんと見当がつ │
│    │ かぬ。             │
└────┴─────────────────┘
                

参考URL