Pipe

SQLite 命令行:如何將輸出通過管道傳輸到 UNIX 實用程序?

  • August 6, 2020

其命令行客戶端的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 輸出?

您不能通過管道輸出互動式 SQLite 會話,因為它不是 shell。 |在 SQL 中不像在命令行中那樣做。您可能需要做的是類似於 的操作sqlite3 /path/to/mydata.sqlite "select * from todos" | grep vim,它將執行 SQL 以及grep您似乎正在嘗試執行的輸出。

可以通過命令過濾查詢的輸出,方法是在參數.output前面.once加上|.

.once '|grep vim'
select * from todos;

不幸的是,這不能與接管整個終端的程序(如尋呼機)進行良好的互動。為此,我強烈推薦litecli

https://sqlite.org/cli.html#writing_results_to_a_file

引用自:https://unix.stackexchange.com/questions/291062