SQLite 명령줄: 출력을 UNIX 유틸리티로 파이프하는 방법은 무엇입니까?

SQLite 명령줄: 출력을 UNIX 유틸리티로 파이프하는 방법은 무엇입니까?

이것SQLite 문서 해당 명령줄 클라이언트는 SQLite 쿼리의 출력이 UNIX 유틸리티를 통해 필터링될 수 있음을 나타냅니다.

기본 출력 모드는 "목록"입니다.
[...]
목록 모드는 추가 처리를 위해 쿼리 출력을 다른 프로그램(예: 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 vimSQL을 실행하고 grep당신이 하려는 일을 출력하는 것과 같은 것입니다.

답변2

.output.once쿼리 출력은 매개변수 앞에 또는 을 추가하여 명령으로 필터링할 수 있습니다 |.

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

불행히도 이는 전체 터미널을 차지하는 프로그램(예: 호출기)과 잘 상호 작용하지 않습니다. 이를 위해 나는 적극 권장합니다레터클리.

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

관련 정보