2021年10月9日土曜日

SQLite3 コマンドラインツールのままテキストファイルを操作する

概要

SQLite3 のコマンドラインツールのまま、 テキストファイルを表示したりすることができる。
「.system」「.shell」コマンドを使う。 「.system」と「.shell」は名前が違うだけで同じコマンド。

「.shell」「.system」コマンドのヘルプ


sqlite> .help .shell
.shell CMD ARGS...       Run CMD ARGS... in a system shell
sqlite> .help .system
.system CMD ARGS...      Run CMD ARGS... in a system shell
                

シェルのコマンドを実行する「.shell」「.system」コマンド

「.shell」「.sysytem」コマンドはコマンドプロンプトや bashのコマンドを実行するためのコマンド。
「dir」や「ls」でディレクトリの内容を確認し、 「more」で内容を確認できる。 「.once」「.output」で出力したファイルや 「.import」コマンドでインポートするファイルの中身を確認するのに使える。

実行環境
  • Windows 10 64bit
  • SQLite3 ver.3.36.0

sqlite> rem # 1.
sqlite> .shell dir .
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は XXXX-XXXX です

 C:\temp のディレクトリ

2021/10/01  22:41    <DIR>          .
2021/10/01  22:41    <DIR>          ..
2021/10/01  22:40             8,192 sample.db
2021/10/01  22:20                23 sample.txt
               2 個のファイル               8,215 バイト
               2 個のディレクトリ  xx,xx,xxx,xxx バイトの空き領域

sqlite> -- # 2.
sqlite> .shell more sample.txt
01,sampletxt
02,sampletxt2

sqlite> -- # 3.
sqlite> .once sample.txt
sqlite> select * from sample01;
sqlite> .shell more sample.txt
01,sampletxt
02,sampletxt2
                
  1. 「dir」コマンドでカレントディレクトリの内容を表示
  2. 「more」コマンドで sample.txt の内容を表示
  3. 「.once」で出力した内容を表示

パイプも使える

Windowsでれば、あらかじめ準備しておいたsqlファイルを クリップボードに読み込んで貼り付け、ということも可能。


sqlite> .shell more insert.sql | clip
                

(Ctrl+V や右クリックで貼り付け)

参考URL