
這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 會話的輸出,因為它不是 shell。 |
它在 SQL 中的作用與在命令列中的作用不同。您可能需要做的是類似於 的操作sqlite3 /path/to/mydata.sqlite "select * from todos" | grep vim
,它將執行 SQL,並grep
輸出您似乎正在嘗試執行的操作。
答案2
.output
透過在參數前面加上或 ,.once
可以透過指令過濾查詢的輸出|
。
.once '|grep vim'
select * from todos;
不幸的是,這不能與接管整個終端的程式(例如尋呼機)很好地互動。為此,我強烈推薦萊特克利。