のSQLite ドキュメント コマンドライン クライアントでは、UNIX ユーティリティを使用して SQLite クエリの出力をフィルターできることを示しています。
デフォルトの出力モードは「リスト」です。
[...]
リスト モードは、クエリの出力を別のプログラム (AWK など) に送信して追加の処理を行う場合に特に便利です。
SQLite コマンドプロンプトで生成された出力の例
sqlite> select * from todos;
1|finish reading getting started section of the vim manual
2|finish app feature
その後、コマンドにパイプを追加しようとすると、新しいプロンプトが表示されます
sqlite> select * from todos; | grep vim
...>
SQLite コマンドラインからパイプを使用して出力を Unix ユーティリティに送信することは可能ですか? それとも、実際に C アプリケーションを記述し、SQLite C ライブラリを使用している場合にのみ、SQLite 出力をフィルター処理できますか?
答え1
対話型 SQLite セッションはシェルではないため、出力をパイプすることはできません。 |
は、コマンド ラインで行うことを SQL では行いません。 おそらく、 に似た操作を行う必要があります。sqlite3 /path/to/mydata.sqlite "select * from todos" | grep vim
これにより、SQL が実行され、grep
目的どおりに出力されます。
答え2
.output
または.once
の引数の前に を付けることで、コマンドを通じてクエリの出力をフィルタリングすることができます|
。
.once '|grep vim'
select * from todos;
残念ながら、これはポケベルのように端末全体を占有するプログラムとはうまく連携しません。そのため、私はライトクリ。