How to redirect sqlite3 output to a file

io-redirectionsqlite

I installed sqlite3 and want to use it to recover information from stylish.sqlite which is located in my Firefox profile folder and is generated by the Stylish extension:

$ cd ~/.mozilla/firefox/w4wcp85s.default
$ sqlite3 stylish.sqlite
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
style_meta  styles
sqlite> SELECT * FROM styles;
6||||YouTube|/* AGENT_SHEET */ 
/* ▓▓ NIGHTSHIFT - eye care:                                 ▓▓
   ▓▓_http://userstyles.org/styles/18192/nightshift-eye-care_▓▓ */

@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document regexp("https?://www.youtube.com/.*")  {
body,html {min-height: 100%!important; }
html, body{background-color:#111!important}
body>*:not(:empty){background-color:#222!important}
body>*>*:not(:empty){background-color:#222!important}
body>*>*>*:not(:empty){background-color:#282828!important}
... 

My question is this: how can I capture the output of sqlite> SELECT * FROM styles; to a file? (I know I can select the output in the terminal and copy it to a file.)

Best Answer

Run it all as a single command:

$ sqlite3 stylish.sqlite "SELECT * FROM styles;" > somefile.txt

Example

$ sqlite3 addons.sqlite "select * from icon;" > somefile.txt

$ cat somefile.txt 
1|32|https://addons.cdn.mozilla.net/img/uploads/addon_icons/354/354399-32.png?modified=1369154804
1|64|https://addons.cdn.mozilla.net/img/uploads/addon_icons/354/354399-64.png?modified=1369154804

Using tee

If you want to see the output as it's being written to the file you can use tee instead.

$ sqlite3 addons.sqlite "select * from icon;" | tee somefile.txt
1|32|https://addons.cdn.mozilla.net/img/uploads/addon_icons/354/354399-32.png?modified=1369154804
1|64|https://addons.cdn.mozilla.net/img/uploads/addon_icons/354/354399-64.png?modified=1369154804
Related Question