ODocumentação SQLite para seu cliente de linha de comando indica que é possível filtrar a saída de consultas SQLite através de utilitários UNIX:
O modo de saída padrão é "lista".
[...]
O modo Lista é especialmente útil quando você vai enviar a saída de uma consulta para outro programa (como AWK) para processamento adicional.
exemplo de saída produzida em um prompt de comando SQLite
sqlite> select * from todos;
1|finish reading getting started section of the vim manual
2|finish app feature
então, se eu tentar adicionar um pipe ao comando, recebo um novo prompt
sqlite> select * from todos; | grep vim
...>
É possível enviar a saída para um utilitário unix usando um canal da linha de comando do SQLite ou só é possível filtrar a saída do SQLite se você estiver realmente escrevendo um aplicativo C e usando a biblioteca SQLite C?
Responder1
Você não pode canalizar a saída de uma sessão SQLite interativa porque não é um shell. |
não faz no SQL o que faz em uma linha de comando. O que você provavelmente precisa fazer é algo parecido com sqlite3 /path/to/mydata.sqlite "select * from todos" | grep vim
, que executará o SQL e grep
a saída conforme você parece estar tentando fazer.
Responder2
É possível filtrar a saída de uma consulta por meio de um comando prefaciando o argumento com .output
ou .once
com um |
.
.once '|grep vim'
select * from todos;
Infelizmente, isso não interage bem com programas que ocupam todo o seu terminal, como pagers. Para isso, recomendo fortementeLitecli.